[Scons-users] Print all known commands (without executing them)?

Kenny, Jason L jason.l.kenny at intel.com
Mon Sep 17 17:59:28 EDT 2012



I believe you need to be aware that Scons has two set of actions classes, .. those that are python functions, and those that are command line actions. You can easily get all the CLI actions with a -N, however you will have a little more difficultly to deal with the python functions cases ( these some mapping logic).

I understand that you are trying to get a set of stuff to do, so you don't have to wait for a build to start.. it just starts building. However the main issue with this approach can be that it build everything, not the sub-set of what needs to be built, this can take longer depending on what your project is than just building the sub-set.

One project I personally work on has 86K worth of nodes, and some 26 million edges. This is one of the reason I am writing the Parts extension, in that having to process over 1000 file to make this huge tree, to only rebuild a sub-set of the node, is painfully long for developers. We had some people here make such a script to get building faster, however since the C/C++ code the wanted to build would take 20-60 minutes to build ( because of the artificial rebuilds), it was better to use the ability in Parts to load the needed sub-set of file, and let Scons do what it does, as this was in the end faster overall. While one could use the parts code as it is open source, I am only suggesting here that you might find it better to look at how to organize the code you are building. A recursive make style is supported by SCons well, and my extension Parts tries to add a component model to SCons, to help speed up large build. Just some thoughts. The whole point of what SCons is trying to do is make sure the stuff build correctly, while system like make depend on you to know all the relationships so it can just do what it needs to do fast, leaving all relationship mistake to be a user problem. I not saying there is not a lot of improvement to be made in SCons.. I know there is. I am just point out a value of Scons in large build. Easy to make large build project.. with a current minus that will get better over time, which is speed and memory usage of large builds.

Jason


More information about the Scons-users mailing list