Руководство пользователя SCons рассказывает об использовании Multiple Construction Environments для сборки нескольких версий одной программы и дает следующий пример:
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)
Вместо того, чтобы вручную присваивать разные имена объектам, скомпилированным в разных средах, VariantDir()
/ variant_dir
звучит как лучшее решение ...
Но если я помещу Program()
строитель в SConscript:
Import('env')
env.Program('foo.c')
Как экспортировать разные среды в один и тот же файл SConscript?
opt = Environment(CCFLAGS = '-O2')
dbg = Environment(CCFLAGS = '-g')
SConscript('SConscript', 'opt', variant_dir='release') #'opt' --> 'env'???
SConscript('SConscript', 'dbg', variant_dir='debug') #'dbg' --> 'env'???
К сожалению, обсуждение в SCons Wiki не дает более глубокого понимания этой темы.
Спасибо за ваш вклад!