diff --git a/platformio/builder/main.py b/platformio/builder/main.py index 6930e96c..0a0d13d3 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..0c740e83 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" @@ -62,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( 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 8c479287..5ad12955 100644 --- a/platformio/builder/scripts/frameworks/energia.py +++ b/platformio/builder/scripts/frameworks/energia.py @@ -44,4 +44,4 @@ libs.append(env.BuildLibrary( join("$PLATFORMFW_DIR", "cores", "${BOARD_OPTIONS['build']['core']}") )) -Return("libs") +Return("env libs") 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 4c7b06d8..12229da5 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", diff --git a/platformio/builder/tools/platformio.py b/platformio/builder/tools/platformio.py index 71feb13d..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 @@ -74,13 +75,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 )