From 4d91c336be7ef39c29ab15099815acf9843bef32 Mon Sep 17 00:00:00 2001 From: Valeriy Koval Date: Mon, 23 Mar 2015 19:40:13 +0200 Subject: [PATCH] Allow own libs per framework's core // Resolve #133 --- platformio/builder/main.py | 2 +- .../builder/scripts/frameworks/arduino.py | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/platformio/builder/main.py b/platformio/builder/main.py index 587c0f21..797b0cd4 100644 --- a/platformio/builder/main.py +++ b/platformio/builder/main.py @@ -71,7 +71,7 @@ DefaultEnvironment( LIBSOURCE_DIRS=[ join("$PROJECT_DIR", "lib"), util.get_lib_dir(), - join("$PLATFORMFW_DIR", "libraries"), + join("$PLATFORMFW_DIR", "libraries") ] ) diff --git a/platformio/builder/scripts/frameworks/arduino.py b/platformio/builder/scripts/frameworks/arduino.py index 0821fe75..1fa6d456 100644 --- a/platformio/builder/scripts/frameworks/arduino.py +++ b/platformio/builder/scripts/frameworks/arduino.py @@ -12,7 +12,7 @@ http://arduino.cc/en/Reference/HomePage """ from os import listdir, walk -from os.path import isfile, join +from os.path import isdir, isfile, join from SCons.Script import DefaultEnvironment @@ -20,6 +20,7 @@ env = DefaultEnvironment() BOARD_OPTS = env.get("BOARD_OPTIONS", {}) BOARD_BUILDOPTS = BOARD_OPTS.get("build", {}) +BOARD_CORELIBDIRNAME = BOARD_BUILDOPTS.get("core") # # Determine framework directory @@ -30,6 +31,7 @@ PLATFORMFW_DIR = join("$PIOPACKAGES_DIR", "framework-arduino${PLATFORM.replace('atmel', '')}") if "digispark" in BOARD_BUILDOPTS.get("core"): + BOARD_CORELIBDIRNAME = "digispark" PLATFORMFW_DIR = join( "$PIOPACKAGES_DIR", "framework-arduino%s" % ( @@ -43,6 +45,21 @@ elif env.get("PLATFORM") == "timsp430": env.Replace(PLATFORMFW_DIR=PLATFORMFW_DIR) +# +# Lookup for specific core's libraries +# + +if isdir(join(env.subst("$PLATFORMFW_DIR"), "libraries", "__cores__", + BOARD_CORELIBDIRNAME)): + lib_dirs = env.get("LIBSOURCE_DIRS") + lib_dirs.insert( + lib_dirs.index(join("$PLATFORMFW_DIR", "libraries")), + join(PLATFORMFW_DIR, "libraries", "__cores__", BOARD_CORELIBDIRNAME) + ) + env.Replace( + LIBSOURCE_DIRS=lib_dirs + ) + # # Base #