Ich bin verrückt zu kontrollieren, wenn Dateien in SCONs erstellt werden. Ich habe einen sehr einfachen Beispielbuildbaum (siehe unten), mit einem Poem
Builder, der nur eine .txt
Datei nimmt und sie in Kleinbuchstaben in eine entsprechende .eectxt
Datei umwandelt.Was löst Scons aus, um Dateien zu erstellen, wenn ich einen benutzerdefinierten Builder habe?
In meinen SConstruct- und SConscript-Dateien erkläre ich Abhängigkeiten von 3. Txt-Dateien.
Aber ich kann nicht herausfinden, was diese in den Standard-Build bringt!
sconstest/
SConstruct
tiger.txt
src/
SConscript
hope.txt
jabberwocky.txt
, wo die * .txt Dateien Gedichte sind und meine SConstruct und SConscript wie folgt aussehen:
SConstruct:
env = Environment();
def eecummings(target, source, env):
if (len(target) == 1 and len(source) == 1):
with open(str(source[0]), 'r') as fin:
with open(str(target[0]), 'w') as fout:
for line in fin:
fout.write(line.lower());
return None
env['BUILDERS']['Poem'] = Builder(action=eecummings, suffix='.eectxt', src_suffix='.txt');
Export('env');
poems = SConscript('src/SConscript');
tigerPoem = env.Poem('tiger.txt');
src/SConscript:
Import('env');
input = ['jabberwocky.txt', 'hope.txt'];
output = [env.Poem(x) for x in input];
Return('output');
Was ich möchte die Abhängigkeit der .eectxt
Dateien von der entsprechendendeklarierenDateien, aber nicht verursachen sie gebaut werden, wenn ich sie nicht explizit in die Default()
Build in der SConstruct-Datei, oder ich fordere sie explizit an der Befehlszeile.
Wie kann ich das tun?