From 042816616e8b235a56552599ea40e60c1c136d87 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Fri, 13 Mar 2015 17:21:07 +0200 Subject: [PATCH] Automatically append -DPLATFORMIO to builder // Resolve #105 --- HISTORY.rst | 2 ++ platformio/builder/tools/platformio.py | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/HISTORY.rst b/HISTORY.rst index 54f6cf8c..93a4ce27 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -20,6 +20,8 @@ Release History development platform * Created new `Frameworks `__ page in documentation +* Automatically append define ``-DPLATFORMIO=%version%`` to builder + (`issue #105 `_) * Renamed ``stm32`` development platform to `ststm32 `__ diff --git a/platformio/builder/tools/platformio.py b/platformio/builder/tools/platformio.py index ca464b25..8bd92913 100644 --- a/platformio/builder/tools/platformio.py +++ b/platformio/builder/tools/platformio.py @@ -9,8 +9,19 @@ 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__ + 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( @@ -52,6 +63,8 @@ def BuildFirmware(env): if _srcbuild_flags: firmenv.MergeFlags(_srcbuild_flags) + _append_pioversion() + return firmenv.Program( join("$BUILD_DIR", "firmware"), [firmenv.GlobCXXFiles(vdir) for vdir in vdirs],