I wrote a build script, mainly for my own project, the last days I rewrote it be as flexible as possible (It makes make obsolete, at least in my case):
https://github.com/Dav1dde/BraLa/blob/master/build_brala.d usage: rdmd build_brala.d # you can rename it of course! -j --jobs # like -j for makefiles -c --cache # path to a cache file, default is .build_cache --no-cache # disables the build cache -o --override-cache # doesn't load the cache file, but writes the newer version How to actually use the fancy classes: https://github.com/Dav1dde/BraLa/blob/master/build_brala.d#L303 The Builder class takes 4 arguments, the cache (MD5Cache and NoCache are implemented), the linker (only dmd implemented), the D-compiler (only dmd implemented) and the C-Compiler (gcc and dmc implemented) The rest should get clear when reading main() TODO: * documentation * other compilers (only a few lines for each compiler + a few to implement Linker functionality) * provide helpers for the taskpool (maybe) * add logging options, currently every command is printed to stdout Any input welcome!
