SCons имеет функцию под названием " Переменные ".Вы можете настроить его так, чтобы он довольно легко считывал переменные аргументов командной строки.Так что в вашем случае вы должны сделать что-то подобное из командной строки:
scons LIBFOO=C:\custom_path\libfoo
... и переменная будет запомнена между запусками.Поэтому в следующий раз, когда вы просто запустите scons
, и он использует предыдущее значение LIBFOO.
В коде вы используете его так:
# read variables from the cache, a user's custom.py file or command line
# arguments
var = Variables(['variables.cache', 'custom.py'], ARGUMENTS)
# add a path variable
var.AddVariables(PathVariable('LIBFOO',
'where the foo library is installed',
r'C:\default\libfoo', PathVariable.PathIsDir))
env = Environment(variables=var)
env.Program('test', 'main.c', LIBPATH='$LIBFOO')
# save variables to a file
var.Save('variables.cache', env)
Если вы действительно хотите использовать "-"параметры стиля, то вы могли бы объединить вышеупомянутое с функцией AddOption
, но это более сложно.
Этот вопрос SO говорит о проблемах, связанных с получением значений из объекта Variablesне пропуская их через окружающую среду.