From cf823c471dd43ffd8e4ba70c79c20d7777dbbe24 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Mon, 2 Feb 2015 14:41:37 +0200 Subject: [PATCH 1/4] Resolve #58 with handling assembly files --- platformio/builder/main.py | 2 +- platformio/builder/scripts/atmelavr.py | 1 + platformio/builder/scripts/timsp430.py | 1 + platformio/builder/scripts/titiva.py | 1 + 4 files changed, 4 insertions(+), 1 deletion(-) diff --git a/platformio/builder/main.py b/platformio/builder/main.py index 24a98e23..59383ce6 100644 --- a/platformio/builder/main.py +++ b/platformio/builder/main.py @@ -48,7 +48,7 @@ commonvars.AddVariables( ) DefaultEnvironment( - tools=["gcc", "g++", "ar", "gnulink", "platformio"], + tools=["gcc", "g++", "as", "ar", "gnulink", "platformio"], toolpath=[join("$PIOBUILDER_DIR", "tools")], variables=commonvars, diff --git a/platformio/builder/scripts/atmelavr.py b/platformio/builder/scripts/atmelavr.py index b3070b95..cfafdbb2 100644 --- a/platformio/builder/scripts/atmelavr.py +++ b/platformio/builder/scripts/atmelavr.py @@ -26,6 +26,7 @@ env.Replace( ARFLAGS=["rcs"], ASFLAGS=[ + "-c", "-g", # include debugging info (so errors include line numbers) "-x", "assembler-with-cpp", "-mmcu=$BOARD_MCU" diff --git a/platformio/builder/scripts/timsp430.py b/platformio/builder/scripts/timsp430.py index 5af0f0c8..8899d474 100644 --- a/platformio/builder/scripts/timsp430.py +++ b/platformio/builder/scripts/timsp430.py @@ -25,6 +25,7 @@ env.Replace( ARFLAGS=["rcs"], ASFLAGS=[ + "-c", "-g", # include debugging info (so errors include line numbers) "-x", "-assembler-with-cpp", "-mmcu=$BOARD_MCU" diff --git a/platformio/builder/scripts/titiva.py b/platformio/builder/scripts/titiva.py index 8a23fedd..e2d9bde0 100644 --- a/platformio/builder/scripts/titiva.py +++ b/platformio/builder/scripts/titiva.py @@ -24,6 +24,7 @@ env.Replace( ARFLAGS=["rcs"], ASFLAGS=[ + "-c", "-g", # include debugging info (so errors include line numbers) "-x", "assembler-with-cpp", "-Wall", From eeb58da1cb0c3e603feb9ad53ee74b7be0487c6b Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Tue, 3 Feb 2015 13:42:58 +0200 Subject: [PATCH 2/4] Allow to ignore files when build library --- platformio/builder/tools/platformio.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/platformio/builder/tools/platformio.py b/platformio/builder/tools/platformio.py index 71feb13d..f5766a15 100644 --- a/platformio/builder/tools/platformio.py +++ b/platformio/builder/tools/platformio.py @@ -74,13 +74,18 @@ def VariantDirRecursive(env, variant_dir, src_dir, duplicate=True, return variants -def BuildLibrary(env, variant_dir, library_dir): +def BuildLibrary(env, variant_dir, library_dir, ignore_files=None): lib = env.Clone() vdirs = lib.VariantDirRecursive( variant_dir, library_dir, ignore_pattern=(".git", ".svn", "examples")) + srcfiles = [] + for vdir in vdirs: + for item in lib.GlobCXXFiles(vdir): + if not ignore_files or item.name not in ignore_files: + srcfiles.append(item) return lib.Library( lib.subst(variant_dir), - [lib.GlobCXXFiles(vdir) for vdir in vdirs] + srcfiles ) From d57cc7b1561183abdc3e8e996967d53806ecbf8e Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Tue, 3 Feb 2015 13:50:08 +0200 Subject: [PATCH 3/4] Keep Scons env state between SConscripts --- platformio/builder/scripts/frameworks/arduino.py | 2 +- platformio/builder/scripts/frameworks/energia.py | 2 +- platformio/builder/tools/platformio.py | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/platformio/builder/scripts/frameworks/arduino.py b/platformio/builder/scripts/frameworks/arduino.py index ca7409eb..34e12edd 100644 --- a/platformio/builder/scripts/frameworks/arduino.py +++ b/platformio/builder/scripts/frameworks/arduino.py @@ -56,4 +56,4 @@ libs.append(env.BuildLibrary( join("$PLATFORMFW_DIR", "cores", "${BOARD_OPTIONS['build']['core']}") )) -Return("libs") +Return("env libs") diff --git a/platformio/builder/scripts/frameworks/energia.py b/platformio/builder/scripts/frameworks/energia.py index 45db6e7d..b1644e85 100644 --- a/platformio/builder/scripts/frameworks/energia.py +++ b/platformio/builder/scripts/frameworks/energia.py @@ -54,4 +54,4 @@ libs.append(env.BuildLibrary( join("$PLATFORMFW_DIR", "cores", "${BOARD_OPTIONS['build']['core']}") )) -Return("libs") +Return("env libs") diff --git a/platformio/builder/tools/platformio.py b/platformio/builder/tools/platformio.py index f5766a15..7f6ceb08 100644 --- a/platformio/builder/tools/platformio.py +++ b/platformio/builder/tools/platformio.py @@ -24,10 +24,11 @@ def ProcessGeneral(env): env.ConvertInoToCpp() for f in env['FRAMEWORK'].split(","): SConscriptChdir(0) - corelibs = SConscript( + env, libs = SConscript( env.subst(join("$PIOBUILDER_DIR", "scripts", "frameworks", "%s.py" % f.strip().lower())), exports="env") + corelibs += libs return corelibs From c05418f47ec897551fe9c3b3e82bb2178d181d27 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Tue, 3 Feb 2015 13:54:31 +0200 Subject: [PATCH 4/4] Resolve #56 / Compiling error if space in Windows user folder --- platformio/builder/scripts/atmelavr.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/platformio/builder/scripts/atmelavr.py b/platformio/builder/scripts/atmelavr.py index cfafdbb2..0c740e83 100644 --- a/platformio/builder/scripts/atmelavr.py +++ b/platformio/builder/scripts/atmelavr.py @@ -63,13 +63,14 @@ env.Replace( "-q", # suppress progress output "-D", # disable auto erase for flash memory "-p", "$BOARD_MCU", - "-C", join("$PIOPACKAGES_DIR", "tool-avrdude", "avrdude.conf"), + "-C", '"%s"' % join("$PIOPACKAGES_DIR", + "tool-avrdude", "avrdude.conf"), "-c", "$UPLOAD_PROTOCOL", "-b", "$UPLOAD_SPEED", "-P", "$UPLOAD_PORT" ], - UPLOADHEXCMD="$UPLOADER $UPLOADERFLAGS -U flash:w:$SOURCES:i", - UPLOADEEPCMD="$UPLOADER $UPLOADERFLAGS -U eeprom:w:$SOURCES:i" + UPLOADHEXCMD='"$UPLOADER" $UPLOADERFLAGS -U flash:w:$SOURCES:i', + UPLOADEEPCMD='"$UPLOADER" $UPLOADERFLAGS -U eeprom:w:$SOURCES:i' ) env.Append(