Refactor $PLATFORMFW_DIR logic in SCons env

This commit is contained in:
Ivan Kravets
2015-02-14 19:23:59 +02:00
parent efcb205116
commit 55ad753bf1
12 changed files with 36 additions and 30 deletions

View File

@ -6,7 +6,7 @@ Release History
* Added support for *ARM*-based credit-card computers: `Raspberry Pi <http://www.raspberrypi.org>`_, * Added support for *ARM*-based credit-card computers: `Raspberry Pi <http://www.raspberrypi.org>`_,
`BeagleBoard <http://beagleboard.org>`_ and `CubieBoard <http://cubieboard.org>`_ `BeagleBoard <http://beagleboard.org>`_ and `CubieBoard <http://cubieboard.org>`_
* Added new boards to `atmelavr <http://docs.platformio.org/en/latest/platforms/atmelavr.html#boards>`_ * Added new boards to `atmelavr <http://docs.platformio.org/en/latest/platforms/atmelavr.html#boards>`__
platform: *Arduino NG, Arduino BT, Arduino Esplora, Arduino Ethernet, platform: *Arduino NG, Arduino BT, Arduino Esplora, Arduino Ethernet,
Arduino Robot Control, Arduino Robot Motor and Arduino Yun* Arduino Robot Control, Arduino Robot Motor and Arduino Yun*
* Refactored *Library Dependency Finder* (issues * Refactored *Library Dependency Finder* (issues

View File

@ -28,7 +28,6 @@ commonvars.AddVariables(
# package aliases # package aliases
("PIOPACKAGE_TOOLCHAIN",), ("PIOPACKAGE_TOOLCHAIN",),
("PIOPACKAGE_UPLOADER",), ("PIOPACKAGE_UPLOADER",),
("PIOPACKAGE_FRAMEWORK",),
# options # options
("FRAMEWORK",), ("FRAMEWORK",),
@ -58,7 +57,6 @@ DefaultEnvironment(
PIOBUILDER_DIR=join(util.get_source_dir(), "builder"), PIOBUILDER_DIR=join(util.get_source_dir(), "builder"),
PIOPACKAGES_DIR=join("$PIOHOME_DIR", "packages"), PIOPACKAGES_DIR=join("$PIOHOME_DIR", "packages"),
PLATFORMFW_DIR=join("$PIOPACKAGES_DIR", "$PIOPACKAGE_FRAMEWORK"),
BUILD_DIR=join("$PIOENVS_DIR", "$PIOENV"), BUILD_DIR=join("$PIOENVS_DIR", "$PIOENV"),
LIBSOURCE_DIRS=[ LIBSOURCE_DIRS=[

View File

@ -12,6 +12,13 @@ from SCons.Script import Import, Return
env = None env = None
Import("env") Import("env")
env.Replace(
PLATFORMFW_DIR=join(
"$PIOPACKAGES_DIR",
"framework-arduino${PLATFORM.replace('atmel', '')}")
)
BOARD_BUILDOPTS = env.get("BOARD_OPTIONS", {}).get("build", {}) BOARD_BUILDOPTS = env.get("BOARD_OPTIONS", {}).get("build", {})

View File

@ -12,10 +12,13 @@ from SCons.Script import Import, Return
env = None env = None
Import("env") Import("env")
env.Replace(
PLATFORMFW_DIR=join("$PIOPACKAGES_DIR", "framework-cmsis")
)
env.VariantDir( env.VariantDir(
join("$BUILD_DIR", "FrameworkCMSIS"), join("$BUILD_DIR", "FrameworkCMSIS"),
join("$PIOPACKAGES_DIR", "framework-cmsis", join("$PLATFORMFW_DIR", "cores", "${BOARD_OPTIONS['build']['core']}")
"cores", "${BOARD_OPTIONS['build']['core']}")
) )
env.Append( env.Append(
@ -34,8 +37,7 @@ envsafe = env.Clone()
libs = [] libs = []
libs.append(envsafe.BuildLibrary( libs.append(envsafe.BuildLibrary(
join("$BUILD_DIR", "FrameworkCMSISVariant"), join("$BUILD_DIR", "FrameworkCMSISVariant"),
join("$PIOPACKAGES_DIR", "framework-cmsis", "variants", join("$PLATFORMFW_DIR", "variants", "${BOARD_OPTIONS['build']['variant']}")
"${BOARD_OPTIONS['build']['variant']}")
)) ))
Return("env libs") Return("env libs")

View File

@ -12,6 +12,10 @@ from SCons.Script import Import, Return
env = None env = None
Import("env") Import("env")
env.Replace(
PLATFORMFW_DIR=join("$PIOPACKAGES_DIR", "framework-energia${PLATFORM[2:]}")
)
ENERGIA_VERSION = int( ENERGIA_VERSION = int(
open(join(env.subst("$PLATFORMFW_DIR"), open(join(env.subst("$PLATFORMFW_DIR"),
"version.txt")).read().replace(".", "").strip()) "version.txt")).read().replace(".", "").strip())

View File

@ -15,6 +15,11 @@ from platformio.util import exec_command
env = None env = None
Import("env") Import("env")
env.Replace(
PLATFORMFW_DIR=join("$PIOPACKAGES_DIR", "framework-opencm3")
)
BOARD_BUILDOPTS = env.get("BOARD_OPTIONS", {}).get("build", {}) BOARD_BUILDOPTS = env.get("BOARD_OPTIONS", {}).get("build", {})
@ -37,8 +42,7 @@ def find_ldscript(src_dir):
def generate_nvic_files(): def generate_nvic_files():
fw_dir = join(env.get("PIOHOME_DIR"), "packages", "framework-opencm3") fw_dir = env.subst("$PLATFORMFW_DIR")
for root, _, files in walk(join(fw_dir, "include", "libopencm3")): for root, _, files in walk(join(fw_dir, "include", "libopencm3")):
if "irq.json" not in files or isfile(join(root, "nvic.h")): if "irq.json" not in files or isfile(join(root, "nvic.h")):
continue continue
@ -87,8 +91,7 @@ def get_source_files(src_dir):
mkdata[key].append(v) mkdata[key].append(v)
sources = [] sources = []
lib_root = env.subst( lib_root = env.subst("$PLATFORMFW_DIR")
join(env.get("PIOHOME_DIR"), "packages", "framework-opencm3"))
for obj_file in mkdata['objs']: for obj_file in mkdata['objs']:
src_file = obj_file[:-1] + "c" src_file = obj_file[:-1] + "c"
for search_path in mkdata['vpath']: for search_path in mkdata['vpath']:
@ -105,15 +108,11 @@ def merge_ld_scripts(main_ld_file):
def _include_callback(match): def _include_callback(match):
included_ld_file = match.group(1) included_ld_file = match.group(1)
# search included ld file in lib directories # search included ld file in lib directories
for root, _, files in walk(join( for root, _, files in walk(env.subst(join("$PLATFORMFW_DIR", "lib"))):
env.get("PIOHOME_DIR"), "packages",
"framework-opencm3", "lib")):
if included_ld_file not in files: if included_ld_file not in files:
continue continue
with open(join(root, included_ld_file)) as fp: with open(join(root, included_ld_file)) as fp:
return fp.read() return fp.read()
return match.group(0) return match.group(0)
content = "" content = ""
@ -135,7 +134,7 @@ if BOARD_BUILDOPTS.get("core") == "lm4f":
env.VariantDir( env.VariantDir(
join("$BUILD_DIR", "FrameworkOpenCM3Variant"), join("$BUILD_DIR", "FrameworkOpenCM3Variant"),
join("$PIOPACKAGES_DIR", "framework-opencm3", "include") join("$PLATFORMFW_DIR", "include")
) )
env.Append( env.Append(
@ -145,8 +144,8 @@ env.Append(
] ]
) )
root_dir = join(env.get("PIOHOME_DIR"), "packages", "framework-opencm3", "lib", root_dir = env.subst(
BOARD_BUILDOPTS.get("core")) join("$PLATFORMFW_DIR", "lib", BOARD_BUILDOPTS.get("core")))
if BOARD_BUILDOPTS.get("core") == "stm32": if BOARD_BUILDOPTS.get("core") == "stm32":
root_dir = join(root_dir, BOARD_BUILDOPTS.get("variant")[-2:]) root_dir = join(root_dir, BOARD_BUILDOPTS.get("variant")[-2:])
@ -161,7 +160,7 @@ env['LINKFLAGS'][env['LINKFLAGS'].index("-T") + 1] = ldscript_path
libs = [] libs = []
env.VariantDir( env.VariantDir(
join("$BUILD_DIR", "FrameworkOpenCM3"), join("$BUILD_DIR", "FrameworkOpenCM3"),
join(env.get("PIOHOME_DIR"), "packages", "framework-opencm3") "$PLATFORMFW_DIR"
) )
libs.append(env.Library( libs.append(env.Library(
join("$BUILD_DIR", "FrameworkOpenCM3"), join("$BUILD_DIR", "FrameworkOpenCM3"),

View File

@ -12,10 +12,13 @@ from SCons.Script import Import, Return
env = None env = None
Import("env") Import("env")
env.Replace(
PLATFORMFW_DIR=join("$PIOPACKAGES_DIR", "framework-spl")
)
env.VariantDir( env.VariantDir(
join("$BUILD_DIR", "FrameworkSPLInc"), join("$BUILD_DIR", "FrameworkSPLInc"),
join("$PIOPACKAGES_DIR", "framework-spl", join("$PLATFORMFW_DIR", "${BOARD_OPTIONS['build']['core']}",
"${BOARD_OPTIONS['build']['core']}",
"variants", "${BOARD_OPTIONS['build']['variant']}", "inc") "variants", "${BOARD_OPTIONS['build']['variant']}", "inc")
) )
@ -54,8 +57,7 @@ elif "STM32L1XX_MD" in extra_flags:
libs = [] libs = []
libs.append(envsafe.BuildLibrary( libs.append(envsafe.BuildLibrary(
join("$BUILD_DIR", "FrameworkSPL"), join("$BUILD_DIR", "FrameworkSPL"),
join("$PIOPACKAGES_DIR", "framework-spl", join("$PLATFORMFW_DIR", "${BOARD_OPTIONS['build']['core']}", "variants",
"${BOARD_OPTIONS['build']['core']}", "variants",
"${BOARD_OPTIONS['build']['variant']}", "src"), "${BOARD_OPTIONS['build']['variant']}", "src"),
ignore_files ignore_files
)) ))

View File

@ -23,7 +23,6 @@ class AtmelavrPlatform(BasePlatform):
}, },
"framework-arduinoavr": { "framework-arduinoavr": {
"alias": "framework",
"default": True "default": True
} }
} }

View File

@ -23,7 +23,6 @@ class AtmelsamPlatform(BasePlatform):
}, },
"framework-arduinosam": { "framework-arduinosam": {
"alias": "framework",
"default": True "default": True
}, },

View File

@ -27,7 +27,6 @@ class TeensyPlatform(BasePlatform):
}, },
"framework-arduinoteensy": { "framework-arduinoteensy": {
"alias": "framework",
"default": True "default": True
} }
} }

View File

@ -23,7 +23,6 @@ class Timsp430Platform(BasePlatform):
}, },
"framework-energiamsp430": { "framework-energiamsp430": {
"alias": "framework",
"default": True "default": True
} }
} }

View File

@ -28,12 +28,10 @@ class TitivaPlatform(BasePlatform):
}, },
"framework-energiativa": { "framework-energiativa": {
"alias": "framework",
"default": True "default": True
}, },
"framework-opencm3": { "framework-opencm3": {
"alias": "framework",
"default": True "default": True
} }
} }