我的目的是最终得到一个编译器命令行,包括-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”结束。有人能指出我正确的方向吗?感谢。
答案 0 :(得分:3)
CPPDEFINES可以是字典(scons用户指南有an example)。我无法找到摆脱周围引号的方法,所以我不得不在字符串周围加倍转义引号:
env = Environment(CPPDEFINES = {'OEM': '\\"FOO BAR\\"'})