diff --git a/platformio/builder/scripts/frameworks/platformio.py b/platformio/builder/scripts/frameworks/platformio.py deleted file mode 100644 index 927001e7..00000000 --- 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 790ea4ad..ec9d4049 100644 --- a/platformio/builder/tools/platformio.py +++ b/platformio/builder/tools/platformio.py @@ -44,9 +44,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") @@ -166,24 +164,23 @@ def LookupSources(env, variant_dir, src_dir, duplicate=True, src_filter=None): 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]) + if env['FRAMEWORK'].lower() in ("arduino", "energia"): + env.ConvertInoToCpp() - for f in frameworks: - if f 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 +344,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