Scons:命令行构建变量,对允许值没有限制

Scons: command-line build variables without restrictions on allowed values

使用的 Scons 版本:3.0.1(历史原因)

我想在我的 Scons 脚本中添加一个命令行构建变量,它不受它期望的值的限制。 EnumVariable 和 ListVariable 都要求您提供允许的值或元素的列表。 我想要一个变量(就像 C++ 定义可以通过 -Dfoo=bar(或至少 -Dfoo_bar)传递给 g++)可以传递给 Scons 脚本。

任何类似

scons my_define=foo_bar

scons my_define=foo=bar,gnarl=argl

scons my_define=foo my_define=bar

会起作用。

我在 user guide 或通过 Google 搜索时没有找到类似的内容。

这可能吗?如果是,如何?

是的。它位于

的用户指南中

https://scons.org/doc/production/HTML/scons-user.html#idp140637539360912

尽管各种 vars.Add*() 方法提供了经过验证的变量类型。您可以使用普通的 vars.Add()

来获得未验证的变量

这是联机帮助页中的示例。

vars.Add('CC', help='The C compiler')