← Back to team overview

kicad-developers team mailing list archive

programming tutorials

 

Hi folks,

 I'm working on some tutorials on creating 3D plugins for
kicad and I'm trying to decide how to organize the document
and where to put the actual source code. There are a number
of issues which need to be addressed:

1. Where should the text of the tutorial go? Personally I would
put it in the documentation repository and I see no reason not
to do this.

2. Where should the source code for the tutorials go? I see at
the moment the tree has a 'demos' directory which contains the
various sample projects and some Python scripting examples.
I can put the files for the plugin tutorials in there but for me
the programming tutorials seem out of place in a directory which
holds example projects.

3. Kicad headers:  To build plugins a user needs some headers
from the kicad source tree. This is something new for kicad;
there has never been such a requirement for headers before.
In the case of plugins the headers are all in the source tree
within include/plugins.  Should I add an install target to place
them in include/kicad/plugins? What switches should control
the installation of headers - extremely few people will actually
want headers installed.

4. CMake FindPackage scripts: To make life easier for a plugin
developer, a FindPackage script should be provided. Where should
such scripts be kept? Should those scripts ever be installed via
CMake/install or should the users be required to find the scripts
in the kicad source and copy them? One option here is to have
the script in the tutorials directory and supplied with the tutorials.

Any comments/suggestions?

By the way the plugin system is an incredible improvement in
the development of 3D model parsers. Since the plugins are
completely decoupled from kicad itself, a complete rebuild of
the VRML1/2 plugin, for example, takes under 2 seconds. In
contrast, touching the existing VRML parser code can result
in up to a few minutes compile time due to the coupling of
headers and code.

- Cirilo