2012-03-16 2 views
0

Предположим, у меня есть SConstruct, который экспортирует среду строительства дочерней SConscript:Как добавить новую переменную командной строки в существующую среду разработки?

Export('SConscript', 'env') 

Я хотел бы для SConscript, чтобы вставить переменную командной строки foo в env, так что я могу вызвать строит с помощью команды

scons foo=bar 

Возможно ли это или необходимо поддерживать такие переменные командной строки для конструктора среды?

ответ

1

Создать новый Variables объект, содержащий новую переменную, а затем обновить среду in the subsidiary SConscript`:

Import('env') 
vars = Variables() 
vars.Add('foo', help='a command line variable named foo') 
vars.Update(env) 
1

Я не уверен, что понимаю вопрос четко, но мой ответ.

Скин имеет очень хорошую поддержку параметров командной строки. В вашем случае используйте функцию ARGUMENTS.get('command_line_parameter', [default]). Чтобы вставить переменную в среду, просто используйте оператор индекса [].

Пример:

env['foo'] = ARGUMENTS.get('foo') # if parameter not set, returns None 

или значение по умолчанию:

env['foo'] = ARGUMENTS.get('foo', 'bar') 

Вы можете найти более подробную информацию о command-line parameters handling в Scons руководстве.

0

Вы также можете передавать значения из командной строки в среду, при обновлении его с переменными:

vars.Update(env, ARGUMENTS) 
Смежные вопросы