forked from platformio/platformio-core
Refactor $PLATFORMFW_DIR logic in SCons env
This commit is contained in:
@ -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
|
||||||
|
@ -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=[
|
||||||
|
@ -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", {})
|
||||||
|
|
||||||
|
|
||||||
|
@ -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")
|
||||||
|
@ -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())
|
||||||
|
@ -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"),
|
||||||
|
@ -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
|
||||||
))
|
))
|
||||||
|
@ -23,7 +23,6 @@ class AtmelavrPlatform(BasePlatform):
|
|||||||
},
|
},
|
||||||
|
|
||||||
"framework-arduinoavr": {
|
"framework-arduinoavr": {
|
||||||
"alias": "framework",
|
|
||||||
"default": True
|
"default": True
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -23,7 +23,6 @@ class AtmelsamPlatform(BasePlatform):
|
|||||||
},
|
},
|
||||||
|
|
||||||
"framework-arduinosam": {
|
"framework-arduinosam": {
|
||||||
"alias": "framework",
|
|
||||||
"default": True
|
"default": True
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -27,7 +27,6 @@ class TeensyPlatform(BasePlatform):
|
|||||||
},
|
},
|
||||||
|
|
||||||
"framework-arduinoteensy": {
|
"framework-arduinoteensy": {
|
||||||
"alias": "framework",
|
|
||||||
"default": True
|
"default": True
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -23,7 +23,6 @@ class Timsp430Platform(BasePlatform):
|
|||||||
},
|
},
|
||||||
|
|
||||||
"framework-energiamsp430": {
|
"framework-energiamsp430": {
|
||||||
"alias": "framework",
|
|
||||||
"default": True
|
"default": True
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user