如何使用Scons生成特定的CPPDEFINE,例如-DOEM =“FOO BAR”

时间:2010-04-27 20:59:12

标签: scons

我的目的是最终得到一个编译器命令行,包括-DOEM =“FOO BAR”

我的SConstruct文件中有以下内容:

opts = Options( 'overrides.py', ARGUMENTS )
opts.Add( 'OEM_NAME', 'Any string can be used here', 'UNDEFINED' )
.
.
.
if (env.Dictionary('OEM_NAME') != 'UNDEFINED'):  
    OEM_DEFINE = 'OEM=' + str(env.Dictionary('OEM_NAME'))
    env.Append( CPPDEFINES=[ OEM_DEFINE ] )

然后我将以下内容放在“overrides.py”文件中:

OEM_NAME = "FOO BAR"

我似乎在生成的命令行中以“-DOEM = FOO BAR”结束。有人能指出我正确的方向吗?感谢。

1 个答案:

答案 0 :(得分:3)

CPPDEFINES可以是字典(scons用户指南有an example)。我无法找到摆脱周围引号的方法,所以我不得不在字符串周围加倍转义引号:

env = Environment(CPPDEFINES = {'OEM': '\\"FOO BAR\\"'})