diff --git a/HISTORY.rst b/HISTORY.rst index 652cbffd14..2839f03266 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -4,6 +4,11 @@ Release History PlatformIO 2.0 -------------- +2.4.1 (2015-12-01) +~~~~~~~~~~~~~~~~~~ + +* Restored ``PLATFORMIO`` macros with the current version + 2.4.0 (2015-12-01) ~~~~~~~~~~~~~~~~~~ diff --git a/platformio/__init__.py b/platformio/__init__.py index 0ef276d88d..2b369209aa 100644 --- a/platformio/__init__.py +++ b/platformio/__init__.py @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -VERSION = (2, 4, 0) +VERSION = (2, 4, 1) __version__ = ".".join([str(s) for s in VERSION]) __title__ = "platformio" diff --git a/platformio/builder/main.py b/platformio/builder/main.py index 5b45692ed7..b3c1b34a54 100644 --- a/platformio/builder/main.py +++ b/platformio/builder/main.py @@ -114,12 +114,6 @@ env = DefaultEnvironment() -# Append PlatformIO version -env.Append( - CPPDEFINES=["PLATFORMIO={0:02d}{1:02d}{2:02d}".format( - *util.pioversion_to_intstr())] -) - if "BOARD" in env: try: env.Replace(BOARD_OPTIONS=util.get_boards(env.subst("$BOARD"))) diff --git a/platformio/builder/scripts/frameworks/platformio.py b/platformio/builder/scripts/frameworks/platformio.py deleted file mode 100644 index 927001e709..0000000000 --- a/platformio/builder/scripts/frameworks/platformio.py +++ /dev/null @@ -1,61 +0,0 @@ -# Copyright 2014-2015 Ivan Kravets -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -""" -PlatformIO - -PlatformIO Framework is an open source light-weight framework with -high-level API for cross-platform embedded programming. It lies above popular -middleware (HAL, SDK) and leverages all its benefits. This approach allowed to -incorporate different development platforms ranging from 8-bits AVR to powerful -32-bit ARM into the one embedded ecosystem. - -http://platformio.org -""" - -from os.path import join - -from SCons.Script import DefaultEnvironment - -env = DefaultEnvironment() - -env.Replace( - PLATFORMFW_DIR=join("$PIOPACKAGES_DIR", "framework-platformio") -) - -env.VariantDirWrap( - join("$BUILD_DIR", "FrameworkPlatformIO"), - join("$PLATFORMFW_DIR", "src", "api") -) - -env.Append( - CPPPATH=[ - join("$BUILD_DIR", "FrameworkCMSIS"), - join("$BUILD_DIR", "FrameworkCMSISVariant") - ] -) - -envsafe = env.Clone() - -# -# Target: Build Core Library -# - -libs = [] -libs.append(envsafe.BuildLibrary( - join("$BUILD_DIR", "FrameworkCMSISVariant"), - join("$PLATFORMFW_DIR", "variants", "${BOARD_OPTIONS['build']['variant']}") -)) - -env.Append(LIBS=libs) diff --git a/platformio/builder/tools/platformio.py b/platformio/builder/tools/platformio.py index 790ea4adb6..c9e82a22bf 100644 --- a/platformio/builder/tools/platformio.py +++ b/platformio/builder/tools/platformio.py @@ -23,6 +23,8 @@ SConscript) from SCons.Util import case_sensitive_suffixes +from platformio.util import pioversion_to_intstr + SRC_BUILD_EXT = ["c", "cpp", "S", "spp", "SPP", "sx", "s", "asm", "ASM"] SRC_HEADER_EXT = ["h", "hpp"] SRC_DEFAULT_FILTER = " ".join([ @@ -44,9 +46,7 @@ def BuildProgram(env): env.get("BUILD_FLAGS"), getenv("PLATFORMIO_BUILD_FLAGS"), ]) - - env.BuildFrameworks([ - f.lower().strip() for f in env.get("FRAMEWORK", "").split(",")]) + env.BuildFramework() # build dependent libs deplibs = env.BuildDependentLibraries("$PROJECTSRC_DIR") @@ -73,6 +73,11 @@ def BuildProgram(env): getenv("PLATFORMIO_SRC_BUILD_FLAGS"), ]) + env.Append( + CPPDEFINES=["PLATFORMIO={0:02d}{1:02d}{2:02d}".format( + *pioversion_to_intstr())] + ) + return env.Program( join("$BUILD_DIR", env.subst("$PROGNAME")), env.LookupSources( @@ -166,24 +171,23 @@ def _match_sources(src_dir, src_filter): return sources -def BuildFrameworks(env, frameworks): - if not frameworks or "uploadlazy" in COMMAND_LINE_TARGETS: +def BuildFramework(env): + if "FRAMEWORK" not in env or "uploadlazy" in COMMAND_LINE_TARGETS: return - board_frameworks = env.get("BOARD_OPTIONS", {}).get("frameworks") - if frameworks == ["platformio"]: - if board_frameworks: - frameworks.insert(0, board_frameworks[0]) - - for f in frameworks: - if f in ("arduino", "energia"): - env.ConvertInoToCpp() + if env['FRAMEWORK'].lower() in ("arduino", "energia"): + env.ConvertInoToCpp() - if f in board_frameworks: - SConscript(env.subst( - join("$PIOBUILDER_DIR", "scripts", "frameworks", "%s.py" % f))) + for f in env['FRAMEWORK'].split(","): + framework = f.strip().lower() + if framework in env.get("BOARD_OPTIONS", {}).get("frameworks"): + SConscript( + env.subst(join("$PIOBUILDER_DIR", "scripts", "frameworks", + "%s.py" % framework)) + ) else: - Exit("Error: This board doesn't support %s framework!" % f) + Exit("Error: This board doesn't support %s framework!" % + framework) def BuildLibrary(env, variant_dir, src_dir, src_filter=None): @@ -347,7 +351,7 @@ def generate(env): env.AddMethod(IsFileWithExt) env.AddMethod(VariantDirWrap) env.AddMethod(LookupSources) - env.AddMethod(BuildFrameworks) + env.AddMethod(BuildFramework) env.AddMethod(BuildLibrary) env.AddMethod(BuildDependentLibraries) return env