scons:如何定义仅在 'scons -c' 期间发生的 command/target?
scons: how to define command/target that only takes place during 'scons -c'?
在构建目标之前我想创建一些目录结构,我知道我可以使用:
env = Environment()
env.Execute('mkdir -p xxx')
但这会导致“mkdir -p”在我清理时执行:
scons -c
"env.Execute" 将被调用。
我希望有一些命令或目标只在我执行时发生 'scons -c'
如何实现?
谢谢
-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
在构建目标之前我想创建一些目录结构,我知道我可以使用:
env = Environment()
env.Execute('mkdir -p xxx')
但这会导致“mkdir -p”在我清理时执行:
scons -c
"env.Execute" 将被调用。
我希望有一些命令或目标只在我执行时发生 'scons -c'
如何实现? 谢谢
-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