可以使用SCons从不确定命名的源文件构造目标吗?

问题描述 投票:0回答:1

我有一个目录,其中包含多个不确定名称的源文件。我唯一知道的是文件扩展名。我想获取每个源文件,并从每个源文件构建一个目标。我目前使用的方法是使用for循环确定每个源的名称:

targets = []
for file in listdir('.'):
    if file.endswith('.xdm'): 
        targets += env.m4(source=file)

像这样进行编程的优点是开发人员在添加新源时不必维护SConscript。问题是由于我不完全理解的something to do with dependencies,目标不再被清理。

所以我的问题是有没有更合适的方法来实现这一点,使用内置的SCons功能,而不依赖于更传统的流控制,或者我应该确保我的每个源都已确定并在SConscript中单独列出它们?

scons
1个回答
2
投票

而不是摆弄listdir我只是使用由SCons本身提供的Glob()方法:

for file in Glob("*.xdm"):
    env.m4(source=file)

这(就像您的问题中的示例)是一个非常好的方法,因为它使用SConscripts实际上是Python脚本的事实。 Glob()方法的优点是还可以找到硬盘上不存在的*.xdm文件,但可能会在以后的构建过程中创建。

我想知道你提到的有关清洁目标的问题。您上面的问题中链接的问答似乎与我无关。如果您使用上述方法之一遇到实际的“清洁”问题,请将完整的逐字输入和输出与单独的问题一起发布。如果事实证明这不是开箱即用的,我认为这是一个错误。

© www.soinside.com 2019 - 2024. All rights reserved.