[Scons-users] persistent but local tweaks to a node's environment
Mats Wichmann
mats at wichmann.us
Sun Jul 25 13:51:44 EDT 2021
On 7/25/21 9:05 AM, Gabe Black wrote:
> Sure. Here is an example SConstruct I was playing with:
>
> '''
> env = Environment()
>
> foo_o = env.Object('foo.c', CCFLAGS='${CCFLAGS} -DFOO=foo')
>
> env.Append(CCFLAGS=['-DBAR=bar'])
> foo = env.Program('foo', foo_o)
>
> Default(foo)
> '''
>
> When that builds foo.o, it always uses -DFOO=foo, and never -DFOO=bar,
> so the env.Append line seems to be clobbered by the override in
> env.Object().
I think that's just an ordering thing, as the substitution is done when
this line runs, not when SCons actually performs the build... if you
move the Append above the Object call does it change?
By the way, normally it's suggested to use CPPDEFINES for preprocessor
macros (where you don't include the -D, SCons will fill that in for the
target compiler) instead of CCFLAGS.
More information about the Scons-users
mailing list