[Scons-users] CPPDEFINES Unexpected Behavior
    Dirk Bächle 
    tshortik at gmx.de
       
    Wed Apr 10 15:34:36 EDT 2013
    
    
  
Hi Kyle,
On 10.04.2013 20:51, Strand, Kyle J wrote:
> Some additional information:
>
> [...]
> I've discovered some really surprising and probably incorrect behavior 
> with the environment's CPPDEFINES variable. According to the manpage,
>
> [...]
>
> This leads me to expect that if I use env.AppendUnique() with a 
> dictionary argument, if any of the values in that dictionary are None, 
> then the corresponding keys will be defined without an explicit value. 
> However, this is not what happens. The following code:
>
> env = Environment()
> newdefs = {'def1':None}
> env.AppendUnique(CPPDEFINES=newdefs)
>
> causes 'def1' to be defined *as the literal string 'None.'
>
> *Is this the desired behavior? If so, why? If not, I'll submit a bug 
> report.
>
I'm not sure what the desired behaviour is, but this is what the code 
does: the replacement methods for the CPPDEFINES variable expect the 
prefix and suffix to be of type str(ing). That's what the function 
_concat_ixes(prefix, list, suffix, env) in Defaults.py tries to ensure 
by wrapping the prefix/suffix arguments in a str() call each. And this 
returns the 'None' in your example.
Does the workaround
   newdefs = {'def1' : ''}
(defining an empty string) give you the desired result?
Best regards,
Dirk
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://four.pairlist.net/pipermail/scons-users/attachments/20130410/ceb01c56/attachment.html>
    
    
More information about the Scons-users
mailing list