Birden çok hedefi (SConscript
içinde bilinmeyen numara) oluşturmak için SCons
almaya çalışıyorum. Bunların her birini istediğim için ben içeriği headers/
dizinden dosyaları almak üzerine SConscript dayandırarak headers_list.txt
okumak istiyorum ŞimdiDeğişken hedef sayısı oluşturmak için SCons
headers/
Header1.h
Header2.h
Header3.h
Header4.h
meta/
headers_list.txt
(yani sadece Header1
ve Header3
içerebilir):
ben gibi dizin var bazı işlevleri kullanarak kaynak oluşturmak için.
ben bunu env.Command
kullanmaya çalışıyorlar, ama meselenin env.Command
çağrılırken bilinen nedenlerle bilinmemektedir hedefler listesini belirtmek için arayan gerektirir.
for header in parse(headers_file):
source = mangle_source_name_for_header(header)
env.Command(source, header, generator_action)
Ama bu ben scons
çağırmak her zaman parse(headers_file)
çalışıyor olması anlamına geliyor: Aklıma
tek şey çalışıyor. Ayrıştırma maliyetli ve dosya genellikle değiştirilmezse, bu adım kolayca önbelleğe alınabilir.
Hangi önbelleklemeye ulaşmak için eksik SConsc yapı/sınıf/teknik var?
düzenleme:
Benim soru Build-time determination of SCons targets benzer görünüyor, ama yapay kukla dosyası olmadan bir teknik yok?
Ayrıca, geçici bir dosyada bile,değişkeni Command
değişkeninden geçirip, bunların üzerinde yinelenen ikinci hedefe farklı sayıda hedef oluşturduğumu görmüyorum.
düzenlemek 2:
This umut verici görünüyor.