2010-09-14 10 views
6

Ich habe ein Bibliotheksprojekt, das einige Beispiele in einem Unterordner enthält.Erstellen eines hierarchischen Builds mit SCONs

Die Bibliothek selbst hat eine SConstruct Datei und jedes Beispiel hat seinen eigenen Ordner und seine eigene SConstruct Datei.

Ich möchte ein Ziel hinzufügen, um die Haupt (Root) SConstruct Datei, die mir erlauben würde, die Bibliothek wie üblich zu kompilieren, und alle Proben gleichzeitig.

Gibt es dafür einen Mechanismus?

P.S: Ich möchte nicht nur eine große SConstruct Datei haben, weil ich will, dass die Beispielordner unabhängig bleiben.

Antwort

8

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

Erstellen einer hierarchischen Aufbaus

Beachten Sie, dass die Dateinamen in einem SConscript Unterverzeichnis angegeben zu diesem Unterverzeichnis bezüglich Datei.

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

Konnte es in den Dokumenten nicht finden. Genau das, was ich brauchte. Danke vielmals. – ereOn

4

Für wie ich diejenigen auf diese Frage von Google kommen, Ich fand ein vollständigeres Beispiel für den Aufbau einer Bibliothek und eines Codes, der aufgerufen wurde es here.

(Entschuldigung, wenn diese Beantwortung einer alten Frage verpönt ist - eine große Anzahl von Suchen nach verschiedenen Kombinationen von "scons" "Unterverzeichnis" "hierarchisch" "build" usw. schlagen diese Seite vor, und ich würde Ich mag es, anderen die 8+ Stunden zu ersparen, die ich gerade damit verbracht habe, hierarchische Builds zu bekommen, um sauber zu arbeiten.

+0

Das ist in der Tat eine gute Referenz. Nach einigen Jahren [konnte ich endlich meine Ziele erreichen] (https://github.com/freelan-developers/freelan-all) mit SCons hierarchischen Builds: Das Projekt ist in mehrere libs/samples/apps aufgeteilt, die alle dasselbe verwenden SCons Dateien. – ereOn

Verwandte Themen