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

问题描述

使用的 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')