The SCons User Guide tells about the usage of Multiple Construction Environments to build build multiple versions of a single program and gives the following example:
opt = Environment(CCFLAGS = '-O2')
dbg = Environment(CCFLAGS = '-g')
o = opt.Object('foo-opt', 'foo.c')
opt.Program(o)
d = dbg.Object('foo-dbg', 'foo.c')
dbg.Program(d)
Instead of manually assigning different names to the objects compiled with different environments, VariantDir()
/ variant_dir
sounds like a better solution...
But if I place the Program()
builder inside the SConscript:
Import('env')
env.Program('foo.c')
How can I export different environments to the same SConscript file?
opt = Environment(CCFLAGS = '-O2')
dbg = Environment(CCFLAGS = '-g')
SConscript('SConscript', 'opt', variant_dir='release') #'opt' --> 'env'???
SConscript('SConscript', 'dbg', variant_dir='debug') #'dbg' --> 'env'???
Unfortunately the discussion in the SCons Wiki does not bring more insight to this topic.
Thanks for your input!
SConscript is a method defined on the environment itself:
for dir, env in (('release', opt), ('debug', dbg)):
env.SConscript('SConscript', 'env', variant_dir=dir)
And then from the SConscript you can:
Import('env')
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With