3 ms·
I've had good experience with scons. It can make shared/static libraries, executables, etc. If you need a custom linker, that is just changing one variable in
by MereInterest 10y ago
I've had good experience with scons. It can make shared/static libraries, executables, etc. If you need a custom linker, that is just changing one variable in the environment. Out-of-source builds take a little bit of configuring, with VariantDir, but work well once they are set up.
Scons has a number of "builders", each of which is associated with a file extension. So, for example, I could look for all files in the src directory that end with either ".c" or ".cc", compile the ".c" files as C, compile the ".cc" files as C++, then link them all together with the following command.
Program("bin/prog", [Glob('src/*.cc'), Glob('src/*.c')])
Custom builders can be added, so if you want to add any additional association (e.g. ".cu" to compile with CUDA), you can.
The documentation (http://scons.org/doc/production/HTML/scons-user/index.html http://scons.org/doc/production/HTML/scons-user/index.html) is pretty good as well