Fix handling of build flags passed via environment vars // Resolve #526

This commit is contained in:
Valeriy Koval
2016-02-25 15:09:23 +02:00
parent ff08416307
commit 1c481e0840
3 changed files with 31 additions and 12 deletions
+13 -11
View File
@@ -96,17 +96,19 @@ def BuildProgram(env):
def ProcessFlags(env, flags):
parsed_flags = env.ParseFlags(flags)
for flag in parsed_flags.pop("CPPDEFINES"):
if isinstance(flag, list):
env.Append(
CPPDEFINES=[
'-D%s=\\"%s\\"' % (flag[0], flag[1])
]
)
else:
env.Append(CPPDEFINES=flag)
env.Append(**parsed_flags)
for f in flags:
if not f:
continue
parsed_flags = env.ParseFlags(str(f))
print parsed_flags
for flag in parsed_flags.pop("CPPDEFINES"):
if not isinstance(flag, list):
env.Append(CPPDEFINES=flag)
continue
if '\"' in flag[1]:
flag[1] = flag[1].replace('\"', '\\\"')
env.Append(CPPDEFINES=[flag])
env.Append(**parsed_flags)
# fix relative CPPPATH
for i, p in enumerate(env.get("CPPPATH", [])):