scons: как определить команду / цель, которая имеет место только во время 'scons -c'? - PullRequest
0 голосов
/ 22 февраля 2019

Прежде чем создавать цели, я хочу создать некоторые структуры каталогов, я знаю, что могу использовать:

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

Но это приведет к выполнению "mkdir -p", даже когда я выполню очистку:

scons -c

И будет вызван «env.Execute».

Мне бы хотелось, чтобы была какая-то команда или цель, которая имеет место только при выполнении 'scons -c'

Как этого добиться? Спасибо.

1 Ответ

0 голосов
/ 23 февраля 2019

Опция -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

...