[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