是什么让我的SCons建立这么长时间?

时间:2019-03-06 03:02:51

标签: scons

我有一个 SConscript ,它使用 Cygwin 附带的 m4 sed 实用程序构造目标。

总体而言,构建大约需要42秒,才能从8个来源构建16个目标,但是同一构建只需要大约4秒的时间即可完成。对于相当琐碎的构建而言,这是十倍的时差!我知道 SCons 必须通过 Python 解释器运行,因此,它当然不会像 Make 这样的本地可执行文件那样快,但是仍然,我必须假设使用像我这样的基本构建,我必须做一些非常愚蠢的事情才能看到如此巨大的时差。有什么想法或建议吗?

根据评论中的一些建议,我用内置的 SCons 替换了自定义的 m4 生成器,并且摆脱了 sed 完全是为了减少潜在原因的数量,现在总构建时间已降至22秒。现在,您可以在下面看到我代码的 int

SConstruct

env = DefaultEnvironment(tools=['m4'])
env['ENV']['PATH'] = ['C:/cygwin/bin']
SConscript('sources/SConscript', exports = 'env', variant_dir='build', duplicate = 0,) 

sources \ SConscript

from ntpath import basename # Gets a file's basename from it's pathname.
Import('env')
M4FLAGS = '-DVV_SUBDERIVATIVE_NAME=5777C -DM4_USER_MODE_CONFIGURATION=true'
for file in Glob("*.xdm"):
    env.M4(target=basename(str(file))+'.orig', source=file, M4FLAGS=M4FLAGS)

0 个答案:

没有答案