From 1f1dc9c5e626d5ae34f96fd423d9fbed185fec4c Mon Sep 17 00:00:00 2001 From: Valeriy Koval Date: Wed, 24 Feb 2016 18:23:42 +0200 Subject: [PATCH] Better handling of build flags passed via environment vars // Resolve #526 --- platformio/builder/tools/platformio.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/platformio/builder/tools/platformio.py b/platformio/builder/tools/platformio.py index 6e080614..1be95fb8 100644 --- a/platformio/builder/tools/platformio.py +++ b/platformio/builder/tools/platformio.py @@ -96,9 +96,17 @@ def BuildProgram(env): def ProcessFlags(env, flags): - for f in flags: - if f: - env.MergeFlags(str(f)) + 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) # fix relative CPPPATH for i, p in enumerate(env.get("CPPPATH", [])):