2010-09-14 15 views
6

Ho un progetto di libreria che contiene alcuni esempi in una sottocartella.Creazione di una build gerarchica con SCons

La biblioteca stessa ha un file SConstruct e ogni campione ha la sua cartella e il proprio file SConstruct.

Vorrei aggiungere un obiettivo al file principale (root) SConstruct che mi consenta di compilare la libreria come al solito e tutti gli esempi contemporaneamente.

Esiste un meccanismo/costruttore esistente per questo?

P.S: Non voglio avere solo un grande file SConstruct perché voglio che le cartelle degli esempi rimangano indipendenti.

risposta

8

http://www.scons.org/doc/production/HTML/scons-man.html

Creazione di un gerarchica Corporatura

Si noti che i nomi dei file specificati in SConscript di una sottodirectory il file sono relative a quella sottodirectory.

SConstruct:

env = Environment() 
env.Program(target = 'foo', source = 'foo.c') 

SConscript('sub/SConscript') 

sub/SConscript:

env = Environment() 
# Builds sub/foo from sub/foo.c 
env.Program(target = 'foo', source = 'foo.c') 

SConscript('dir/SConscript') 

sub/dir/SConscript:

env = Environment() 
# Builds sub/dir/foo from sub/dir/foo.c 
env.Program(target = 'foo', source = 'foo.c') 
+0

Impossibile trovarlo nei documenti. Esattamente quello di cui avevo bisogno. Grazie molto. – ereOn

4

Per quelli come me venire a questa domanda da parte di Google, Ho trovato un esempio più completo di creazione di una libreria e di un codice che ha chiamato it here.

(Mi scuso se questa risposta a una vecchia domanda è disapprovata - un gran numero di ricerche per varie combinazioni di "scons" "sottodirectory" "gerarchico" "build", ecc. Suggeriscono questa pagina, e io mi piace salvare gli altri 8+ ore che ho appena trascorso cercando di ottenere build gerarchiche per funzionare in modo pulito).

+0

Questo è davvero un buon riferimento. Dopo diversi anni, [ho potuto finalmente raggiungere i miei obiettivi] (https://github.com/freelan-developers/freelan-all) usando SCons build gerarchici: il progetto è diviso in diverse librerie/campioni/app che usano tutte lo stesso SCons files. – ereOn

Problemi correlati