Sto impazzendo cercando di controllare quando i file sono costruiti in scons. Ho un albero di compilazione di esempio molto semplice (vedi sotto), con un builder Poem
che prende solo un file .txt
e lo converte in minuscolo in un file .eectxt
corrispondente.cosa fa scons scons a creare file quando ho un builder personalizzato?
Nei file SConstruct e SConscript, dichiaro le dipendenze di 3 file .txt.
Ma non riesco a capire cosa sta inserendo questi nella build predefinita!
sconstest/
SConstruct
tiger.txt
src/
SConscript
hope.txt
jabberwocky.txt
in cui i file * .txt sono poesie e la mia SConstruct e SConscript simile a questa:
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');
Quello che ho voler fare è dichiarare la dipendenza dei file .eectxt
dal corrispondenteI file, ma non, possono essere creati a meno che non li inserisca esplicitamente nella build Default()
nel file SConstruct o li richieda esplicitamente alla riga di comando.
Come posso fare questo?