Je vais essayer de contrôler quand les fichiers sont construits en scons. J'ai un arbre de construction exemple très simple (voir ci-dessous), avec un constructeur Poem
qui prend juste un fichier .txt
et le convertit en minuscule dans un fichier .eectxt
correspondant.Qu'est ce qui déclenche la génération de fichiers par scons lorsque j'ai un constructeur personnalisé?
Dans mes fichiers SConstruct et SConscript, je déclare les dépendances de 3 fichiers .txt.
Mais je n'arrive pas à comprendre ce qui les place dans la version par défaut!
sconstest/
SConstruct
tiger.txt
src/
SConscript
hope.txt
jabberwocky.txt
où les fichiers * .txt sont des poèmes et mon SConstruct et SConscript ressemblent à ceci:
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');
Ce que je vouloir faire est de déclarer la dépendance des fichiers .eectxt
à partir ducorrespondantfichiers, mais pas cause de les construire à moins que je les mets explicitement dans la construction Default()
dans le fichier SConstruct, ou je les demande explicitement à la ligne de commande.
Comment est-ce que je peux faire ceci?