Merge branch 'release/v2.4.1'

This commit is contained in:
Ivan Kravets
2015-12-01 19:02:16 +02:00
5 changed files with 28 additions and 86 deletions

View File

@ -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)
~~~~~~~~~~~~~~~~~~

View File

@ -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"

View File

@ -114,12 +114,6 @@ DefaultEnvironment(
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")))

View File

@ -1,61 +0,0 @@
# Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
#
# 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)

View File

@ -23,6 +23,8 @@ from SCons.Script import (COMMAND_LINE_TARGETS, DefaultEnvironment, Exit,
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 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 +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