Empty layers would not be included in the exported Asymptote file, making it hard to work with a set of SVG files with the same layers if some of the SVG files had empty layers.
Currently, the user has to configure which SVG files are exported to DXF and which to Asymptote, without a possibility to do both.
With this change, all SVG files are exported to both file formats, if necessary.
The make file now removes targets when commands fail. In some cases (e.g. generating files), an error would lead to a half-written file being left behind and that file would not get updated in the next invocation of `make`.
This catches the OSError thrown by the subprocess module and wraps it so that in the end only an error message is printed, explaining which command failed.
Asymptote leaves a trail of partially cleaned-up temporary files behind it when PDFLaTeX is used.
With this changes, Asymptote files are compiled in a temporary directory outside the project root.
Currently, on setups where the project dir is on a different file system as the system temporary directory, a temporary directory is instead created on the project dir. This is not very nice.
With this change, we still create temporary files in the system temporary directory but copy instead of move files from and to the temporary directory, if necessary, which solves the problems.
With this change, different colors are assigned to shapes. Shapes on the same layer get the same color. This allows them to be grouped by color by software that doesn’t support layers (e.g. Lasercut 5.3).
When running the make file with a number of jobs, the following warning was generated by the make process used to parse the dependency makefile generated by OpenSCAD:
make[1]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule.
With this change, the variables MAKELEVEL and MAKEFLAGS are removed from the environment before starting the child make process.
This fixes exporting SVG files which contain text on a path where the path is on a different layer than the text (which is necessary unless the path should also be combined with the text in a single layer).
This moves all ignore rules to the .gitignore files in the root directory. This is so that users can edit the .gitignore file in src without the risk of merge conflicts if we ever need to edit the default rules.
src/.gitignore is now empty but is left in the repository so that the src directory is automatically created on checkout.