2010-09-14 16 views
6

Mam projekt biblioteki, który zawiera kilka próbek w podfolderze.Tworzenie hierarchicznej kompilacji za pomocą SCons

Sama biblioteka ma plik SConstruct, a każda próbka ma własny folder i własny plik SConstruct.

Chciałbym dodać cel do pliku głównego (root) SConstruct, który pozwoliłby mi skompilować bibliotekę jak zwykle i wszystkie próbki naraz.

Czy istnieje istniejący mechanizm/konstruktor do tego?

P.S: Nie chcę mieć tylko jednego dużego pliku SConstruct, ponieważ chcę, aby foldery próbek pozostały niezależne.

Odpowiedz

8

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

Tworzenie hierarchicznej Build

zauważyć, że nazwy pliku podanego w podkatalogu za SConscript złożyć są w stosunku do tego podkatalogu.

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

Nie można znaleźć tego w dokumentach. Dokładnie to, czego potrzebowałem. Wielkie dzięki. – ereOn

4

Dla tych, jak ja zbliża się do tej kwestii z Google Znalazłem pełniejszy przykład budowania biblioteki i kodu, który wywołał to here.

(Przepraszam, jeśli odpowiedź na stare pytanie jest niezadowolona - duża liczba wyszukiwań różnych kombinacji "scons" "podkatalogu" "hierarchiczna" "kompilacja" itd. Sugeruje tę stronę, a ja lubię ratować innych przez 8+ godzin, które właśnie spędziłem próbując uzyskać hierarchiczne kompilacje, aby działały czysto).

+0

To naprawdę dobry punkt odniesienia. Po kilku latach [udało mi się w końcu osiągnąć moje cele] (https://github.com/freelan-developers/freelan-all) przy użyciu hierarchicznych buildów SCons: projekt jest podzielony na kilka bibliotek/próbek/aplikacji, z których wszystkie korzystają z tego samego Pliki SCons. – ereOn

Powiązane problemy