diff --git a/platformio/builder/tools/piomisc.py b/platformio/builder/tools/piomisc.py index 1fa62f93..a848ea0e 100644 --- a/platformio/builder/tools/piomisc.py +++ b/platformio/builder/tools/piomisc.py @@ -122,8 +122,8 @@ def ConvertInoToCpp(env): remove(file_) except: # pylint: disable=bare-except if isfile(file_): - print ("Warning: Could not remove temporary file '%s'. " - "Please remove it manually." % file_) + print("Warning: Could not remove temporary file '%s'. " + "Please remove it manually." % file_) ino_nodes = (env.Glob(join("$PROJECTSRC_DIR", "*.ino")) + env.Glob(join("$PROJECTSRC_DIR", "*.pde"))) @@ -202,9 +202,7 @@ def DumpIDEData(env): def get_defines(env_): defines = [] # global symbols - for item in env_.get("CPPDEFINES", []): - if isinstance(item, list): - item = "=".join(item) + for item in env.Flatten(env_.get("CPPDEFINES", [])): defines.append(env_.subst(item).replace('\\"', '"')) # special symbol for Atmel AVR MCU @@ -232,9 +230,7 @@ def DumpIDEData(env): # https://github.com/platformio/platformio-atom-ide/issues/34 _new_defines = [] - for item in env_.get("CPPDEFINES", []): - if isinstance(item, list): - item = "=".join(item) + for item in env.Flatten(env_.get("CPPDEFINES", [])): item = item.replace('\\"', '"') if " " in item: _new_defines.append(item.replace(" ", "\\\\ ")) diff --git a/platformio/builder/tools/platformio.py b/platformio/builder/tools/platformio.py index 1c7743fe..e1b599c8 100644 --- a/platformio/builder/tools/platformio.py +++ b/platformio/builder/tools/platformio.py @@ -36,12 +36,9 @@ SRC_DEFAULT_FILTER = " ".join([ def BuildProgram(env): def _append_pio_macros(): - if any(["PLATFORMIO=" in str(d) for d in env.get("CPPDEFINES", [])]): - return - env.Append( + env.AppendUnique( CPPDEFINES=["PLATFORMIO={0:02d}{1:02d}{2:02d}".format( - *pioversion_to_intstr())], - ) + *pioversion_to_intstr())]) _append_pio_macros()