tags:

views:

18

answers:

1

My intention is to end up with a compiler command line including -DOEM="FOO BAR"

I have the following in my SConstruct file:

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 ] )

Then I put the following in the "overrides.py" file:

OEM_NAME = "FOO BAR"

I seem to end up with "-DOEM=FOO BAR" in the command line that gets generated. Can someone point me in the right direction? Thanks.

+1  A: 

CPPDEFINES can be a dictionary (the scons user guide has an example). I couldn't figure out a way to get rid of the surrounding quotes, so I had to double escape quotes around the string:

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