Compile automation and source-based documentation for OpenSCAD designs.
What is it?
The openscad-amu has been developed to support the construction of automated design flows, using GNU make, and documentation generation, using Doxygen, for OpenSCAD designs. It provides a framework that allows for documentation and build-scripts to be embedded in *.scad source along side the design. The openscad-amu is composed of a collection of programs, a makefile script library, and support scripts that work together to automate and document OpenSCAD designs.
The documentation is generated using Doxygen and openscad-amu includes a source-code preprocessor for *.scad (and *.bash). This preprocessor provides additional Doxygen special commands and features useful for documenting OpenSCAD designs. The design automation build-scripts, embedded in the source-code, are extracted by openscad-amu and used to construct makefiles that manage the generation of design targets.
By utilizing openscad-amu, OpenSCAD design documentation lives close to to the source code and dependency-based targets generation is scripted for use in code testing, code documentation and design construction. Moreover, with GNU make, targets can be constructed in parallel which drastically reduces compile times for larger design projects.
The Design Flow
Both the design flow automation scripting and documentation is done in the design *.scad source files using structured comments. This meta-data is extracted at compile-time to construct makefiles that manage design compilation and documentation.
As the design size increases, so does the benefit of using openscad-amu. Compiling design targets one-by-one is times consuming and error prone and discourages design optimization and/or exploration.
A windfall is a linear reduction, with processor thread count, in compile time on multi-processor systems via parallel invocations of the single-threaded OpenSCAD compiler. Once compilation flows are described, using the openscad-amu scripting scheme, each design target is kept current from source as needed during automatic build processing via GNU make.
To get started using openscad-amu, please see the GitHub source repository.