[Scons-users] Creating SConscripts on the fly

Gary Granger granger at ucar.edu
Thu Feb 22 01:08:35 EST 2018


Hi Spencer,

If you already have the information to generate the SConscript file from
within a scons builder, then why not just call the builders directly and
let scons build the software normally, without requiring an intermediate
SConscript file?  What purpose does generating the SConscript file serve?

In normal operation, SCons first reads all the SConscript files to build
up the graph of nodes and dependencies, and then it builds whatever
nodes are outdated or missing.  So I don't think you can specify that a
SConscript file is a node that needs to be built, then read that
SConscript file to modify the graph of nodes and build again, not
without running SCons twice.

So in your code which determines whether a module needs to be built,
rather than generating a SConscript file, just call the builders that
the SConscript file would have called.  If a module does not need to be
built, then it is ok to skip calling those builders.  Once all the
builders for all the modules have been called, SCons will build all the
modules in one run.

I hope I understood your situation and this makes sense...
Gary

On 02/21/2018 10:35 PM, Spencer Yost wrote:
> I know this has been covered before, and I apologize for plowing old ground. I did search around but came up empty handed.  I have a question:
>
> I create my SConscript files on the fly. I have my own system for determining whether or not it needs to be built for a particular module in the tree, then I build it if needed and then make the SConscript() call.  this works great.  So I decided I want to create a builder for this SConscript creation  - just because that seemed to be the "right" way to do it.  But if I use a custom builder it will not build the software if it determines the SConscript file needs to be built.  It just creates the SConscript file. If it doesn't have to create/recreate, it will build the software. 
>
> I have become experienced enough with Scons now to realize why it is doing this. But there has to be a way to get it to build the SConscript file using a builder and build the software without running a second time.  Does anyone have a slick way of combining the creation of the SConscript while also building?  I do not have a "root"(at the SConstruct level) SConscript file - which may the be the answer - but thought  I would ask smarter people than me before I spent the time. 
>
> Thanks in advance!
>
> Spencer Yost
>
> _______________________________________________
> Scons-users mailing list
> Scons-users at scons.org
> https://pairlist4.pair.net/mailman/listinfo/scons-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20180221/7bfe58fd/attachment-0001.html>


More information about the Scons-users mailing list