Как сгенерировать конкретный CPPDEFINE, такой как -DOEM = "FOO BAR", используя Scons - PullRequest
3 голосов
/ 28 апреля 2010

Мое намерение состоит в том, чтобы получить командную строку компилятора, включающую -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 Ответ

3 голосов
/ 28 апреля 2010

CPPDEFINES может быть словарем (в руководстве пользователя scons есть пример ). Я не мог найти способ избавиться от окружающих кавычек, поэтому мне пришлось удваивать кавычки вокруг строки:

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