I SCons Guida per l'utente racconta l'utilizzo di Multiple Construction Environments per costruire costruire più versioni di un unico programma e fornisce il seguente esempio:SCons: come utilizzare gli stessi costruttori per più varianti (stampa/debug) di un programma
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)
Invece di assegnare manualmente nomi diversi agli oggetti compilati con ambienti diversi, VariantDir()
/variant_dir
suona come una soluzione migliore ...
Ma se metto il Program()
costruttore all'interno della SConscript:
Import('env')
env.Program('foo.c')
Come è possibile esportare ambienti diversi nello stesso file 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'???
Purtroppo la discussione nel SCons Wiki non porta più comprensione di questo argomento.
Grazie per il vostro contributo!
Grazie BennyG: Questo sembra molto interessante e pitonioso :-). Ho iniziato a provare il tuo suggerimento ma fino ad ora mi sono bloccato con altri cambiamenti nei miei script di build ... tornerò con più feedback in seguito! –
Sto ancora lottando con alcuni degli aspetti che variant_dir introduce nel mio SConscript, ma la tua soluzione è perfettamente giusta per la mia domanda. Grazie ancora! –