Я схожу с ума, пытаясь контролировать, когда файлы создаются в scons.У меня есть очень простой пример дерева сборки (см. Ниже) со сборщиком Poem
, который просто берет файл .txt
и преобразует его в нижний регистр в соответствующий файл .eectxt
.
В моих файлах SConstruct и SConscript я объявляю зависимости 3 файлов .txt.
Но я не могу понять, что помещает их в сборку по умолчанию!
sconstest/
SConstruct
tiger.txt
src/
SConscript
hope.txt
jabberwocky.txt
, где файлы * .txt - это стихи, а мои SConstruct и SConscript выглядят так:
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');
Что я хочу сделать, это объявить зависимость файлов .eectxt
от соответствующих файлов .txt
, но не вызывает их сборку, если я явно не помещу их вDefault()
встроить в файл SConstruct, или я запрашиваю их явно в командной строке.
Как я могу это сделать?