我很难控制何时在scons中构建文件.我有一个非常简单的构建树示例(见下文),其中一个Poem构建器只接受一个.txt文件并将其转换为相应.eectxt文件中的小写.
在我的SConstruct和SConscript文件中,我声明了3个.txt文件的依赖项.
但我无法弄清楚是什么将这些放入默认构建中!
sconstest/
SConstruct
tiger.txt
src/
SConscript
hope.txt
jabberwocky.txt
Run Code Online (Sandbox Code Playgroud)
其中*.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');
Run Code Online (Sandbox Code Playgroud)
SRC/SConscript:
Import('env');
input = ['jabberwocky.txt', 'hope.txt'];
output = [env.Poem(x) for x in input];
Return('output');
Run Code Online (Sandbox Code Playgroud)
我想要做的是声明.eectxt文件与相应.txt文件的依赖关系,但不会导致它们被构建,除非我明确地将它们放入Default()SConstruct文件中的构建中,或者我在命令行显式请求它们.
我怎样才能做到这一点?
| 归档时间: |
|
| 查看次数: |
1094 次 |
| 最近记录: |