Próbuję uzyskać SCons
, aby wygenerować wiele celów (numer nieznany bezpośrednio w SConscript
).SCons generuje zmienną liczbę celów
Mam katalogu jak:
headers/
Header1.h
Header2.h
Header3.h
Header4.h
meta/
headers_list.txt
Teraz chcę SConscript czytać headers_list.txt
, w oparciu o jego zawartość odebrać pliki z headers/
katalogu (czyli może on zawierać tylko Header1
i Header3
), dla każdej z tych Chcę generować źródło za pomocą jakiejś funkcji.
I zostały próbuje użyć env.Command
to zrobić, ale problemem jest to, że wymaga rozmówcy określić listę celów, które z oczywistych względów nie wiadomo, kiedy powołując env.Command
.
Jedyne co mogę myśleć jest uruchomiony:
for header in parse(headers_file):
source = mangle_source_name_for_header(header)
env.Command(source, header, generator_action)
Ale oznacza to będę uruchomiony parse(headers_file)
każdym razem modlę scons
. Jeśli parsowanie jest kosztowne, a plik nie jest często zmieniany, krok ten można łatwo buforować.
Co SConsc konstrukcja/klasa/technika brakuje mi do osiągnięcia tego buforowania?
edit:
Wydaje się moje pytanie jest podobna do Build-time determination of SCons targets, ale nie ma to technika bez sztucznej pliku manekina?
Ponadto, nawet z plikiem tymczasowym, nie widzę, jak mam przekazać target
zmienną z Command
, która generuje zmienną liczbę celów do drugiej, która mogłaby iterować nad nimi.
edit 2:
This wygląda obiecująco.