사용 설명서가 하나의 프로그램의 여러 버전을 구축 구축 Multiple Construction Environments의 사용에 대해 알려줍니다 다음과 같은 예를 주시는 SCons는 :SCons는 : 프로그램의 여러 변종에 동일한 빌더 (릴리즈/디버그)를 사용하는 방법
을/variant_dir
VariantDir()
가 더 나은 솔루션 같은 소리
대신 수동으로 다른 환경으로 컴파일 된 개체에 다른 이름을 할당
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)
, ...
하지만 난 SConscript 내부의 Program()
빌더를 배치하면 :
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의 토론이 주제에 대한 더 많은 통찰력을 가져 오지 않습니다.
입력 해 주셔서 감사합니다. 당신이 할 수 SConscript에서 다음
for dir, env in (('release', opt), ('debug', dbg)):
env.SConscript('SConscript', 'env', variant_dir=dir)
과 : 수출이 SConscript에 arg를 같이
Import('env')
감사합니다. BennyG : 매우 흥미롭고 파이썬 스럽습니다 .--). 나는 당신의 제안을 시도하기 시작했다. 그러나 지금까지 나는 빌드 스크립트의 다른 변화들에 갇혀있다 ... 나는 나중에 더 많은 피드백을 가지고 돌아갈 것이다! –
나는 variant_dir이 내 SConscript에 가져 오는 측면 중 일부와 여전히 고심하고 있지만 솔루션은 내 질문에 완벽하게 맞습니다. 다시 한 번 감사드립니다! –