【问题标题】:scons: how to define command/target that only takes place during 'scons -c'?scons:如何定义仅在“scons -c”期间发生的命令/目标?
【发布时间】:2019-02-22 07:12:57
【问题描述】:

在构建目标之前,我希望创建一些目录结构,我知道我可以使用:

env = Environment()
env.Execute('mkdir -p xxx')

但这会导致“mkdir -p”即使在我清理时也会被执行:

scons -c

“env.Execute”将被调用。

我希望有一些命令或目标仅在我执行 'scons -c' 时才会发生

如何做到这一点? 谢谢。

【问题讨论】:

  • scons 将构建到这些目录中吗?因为 SCons 会在这种情况下自动创建它们..

标签: command execute scons


【解决方案1】:

-c 选项是一个内置的 scons 选项,您可以检查它是否使用GetOption('clean') 设置。

然后您可以根据 'clean' 选项的值有条件地调用命令。这是一个例子:

env = Environment()
if not GetOption('clean'):
    env.Execute('mkdir -p xxx')
else:
    env.Execute('echo "Cleaning up..."')

可以在此处找到有关其他内置选项的更多信息: https://scons.org/doc/production/HTML/scons-user.html#sect-command-line-option-strings https://scons.org/doc/production/HTML/scons-man.html#options

【讨论】:

    猜你喜欢
    • 2019-08-03
    • 1970-01-01
    • 1970-01-01
    • 2012-12-06
    • 1970-01-01
    • 2015-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多