[Scons-users] Creating SConscripts on the fly

Hill, Steve (FP COM) Steve.Hill at cobham.com
Thu Feb 22 03:20:18 EST 2018


>> why not just call the builders directly and let scons build the software normally, without requiring an intermediate SConscript file?

 

This is exactly what I do. The SConstruct invokes our layer of business logic which, once it has figured out what needs to be built, calls the SCons Builders and releases SCons to do the build. This has allowed us to get all the SCons build goodness but with build times, in some cases, an order of magnitude quicker or more…

 

S.

 

 

From: Scons-users [mailto:scons-users-bounces at scons.org] On Behalf Of Gary Granger
Sent: 22 February 2018 06:09
To: Spencer Yost; SCons users mailing list
Subject: Re: [Scons-users] Creating SConscripts on the fly

 

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/20180222/cc3d361e/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 526 bytes
Desc: not available
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20180222/cc3d361e/attachment.sig>


More information about the Scons-users mailing list