diff --git a/platformio/builder/tools/platformio.py b/platformio/builder/tools/platformio.py index 8bd92913..bb9b5786 100644 --- a/platformio/builder/tools/platformio.py +++ b/platformio/builder/tools/platformio.py @@ -9,19 +9,11 @@ from os.path import basename, dirname, isdir, isfile, join, normpath from SCons.Script import Exit, SConscript, SConscriptChdir from SCons.Util import case_sensitive_suffixes -from platformio import __version__ +from platformio.util import pioversion_to_intstr def BuildFirmware(env): - def _append_pioversion(): - vermatch = re.match(r"^([\d\.]+)", __version__) - assert vermatch - intparts = [int(i) for i in vermatch.group(1).split(".")[:3]] - firmenv.Append( - CPPDEFINES=["PLATFORMIO={:02d}{:02d}{:02d}".format(*intparts)] - ) - # fix ASM handling under non-casitive OS if not case_sensitive_suffixes('.s', '.S'): env.Replace( @@ -63,7 +55,10 @@ def BuildFirmware(env): if _srcbuild_flags: firmenv.MergeFlags(_srcbuild_flags) - _append_pioversion() + firmenv.Append( + CPPDEFINES=["PLATFORMIO={0:02d}{1:02d}{2:02d}".format( + *pioversion_to_intstr())] + ) return firmenv.Program( join("$BUILD_DIR", "firmware"), diff --git a/platformio/util.py b/platformio/util.py index 2965e020..95e7a623 100644 --- a/platformio/util.py +++ b/platformio/util.py @@ -58,6 +58,12 @@ def get_systype(): return ("%s_%s" % (data[0], data[4])).lower() +def pioversion_to_intstr(): + vermatch = re.match(r"^([\d\.]+)", __version__) + assert vermatch + return [int(i) for i in vermatch.group(1).split(".")[:3]] + + def _get_projconf_option_dir(name, default=None): _env_name = "PLATFORMIO_%s" % name.upper() if _env_name in os.environ: