[Scons-users] Creating SConscripts on the fly

Hua Yanghao huayanghao at gmail.com
Thu Feb 22 04:28:51 EST 2018


One slight drawback of this approach I see is: you lost the out of box
variant_dir parameter support.

Bill did show a way in another threads how this can be done also
directly using VariantDir(), so I think this slight drawback is
solvable.

I am thinking this is really a way to solve my SConscript
"default_import" issue, however this means also SConscript will be
hiding from module developers. But I think this is not a problem for
me.

On Thu, Feb 22, 2018 at 7:08 AM, Gary Granger <granger at ucar.edu> wrote:
> 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
>
>
>
> _______________________________________________
> Scons-users mailing list
> Scons-users at scons.org
> https://pairlist4.pair.net/mailman/listinfo/scons-users
>


More information about the Scons-users mailing list