From 34b1f3b0a14310e681beb7dc4b7081a5050b50c4 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Thu, 28 Jul 2016 22:15:03 +0300 Subject: [PATCH] Handle includes from CPPPATH for PlatformIOLibBuilder --- platformio/__init__.py | 2 +- platformio/builder/tools/piolib.py | 20 ++++++++++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/platformio/__init__.py b/platformio/__init__.py index 7d384e5c..735c7548 100644 --- a/platformio/__init__.py +++ b/platformio/__init__.py @@ -14,7 +14,7 @@ import sys -VERSION = (3, 0, "0.dev12") +VERSION = (3, 0, "0.dev13") __version__ = ".".join([str(s) for s in VERSION]) __title__ = "platformio" diff --git a/platformio/builder/tools/piolib.py b/platformio/builder/tools/piolib.py index f9797560..ebddb279 100644 --- a/platformio/builder/tools/piolib.py +++ b/platformio/builder/tools/piolib.py @@ -72,12 +72,13 @@ class LibBuilderFactory(object): return [] -class LibBuilderBase(object): +class LibBuilderBase(object): # pylint: disable=too-many-instance-attributes INC_SCANNER = SCons.Scanner.C.CScanner() def __init__(self, env, path): self.env = env.Clone() + self.envorigin = env.Clone() self.path = env.subst(path) self._manifest = self.load_manifest() self._is_dependent = False @@ -156,7 +157,10 @@ class LibBuilderBase(object): self.env.ProcessUnFlags(self.build_unflags) self.env.ProcessFlags(self.build_flags) if self.extra_script: - self.env.SConscript(realpath(self.extra_script), exports="env") + self.env.SConscript( + realpath(self.extra_script), + exports={"env": self.env, + "pio_lib_builder": self}) def get_inc_dirs(self, use_build_dir=False): return [self.build_dir if use_build_dir else self.src_dir] @@ -363,8 +367,8 @@ class PlatformIOLibBuilder(LibBuilderBase): @property def extra_script(self): - if "extra_script" in self._manifest.get("build", {}): - return self._manifest.get("build").get("extra_script") + if "extraScript" in self._manifest.get("build", {}): + return self._manifest.get("build").get("extraScript") return LibBuilderBase.extra_script.fget(self) @property @@ -392,6 +396,14 @@ class PlatformIOLibBuilder(LibBuilderBase): ilist = [i.strip() for i in ilist.split(",")] return item.lower() in [i.lower() for i in ilist] + def get_inc_dirs(self, use_build_dir=False): + inc_dirs = LibBuilderBase.get_inc_dirs(self, use_build_dir) + for path in self.env['CPPPATH']: + if path not in self.envorigin['CPPPATH']: + inc_dirs.append( + path if use_build_dir else self.env.subst(path)) + return inc_dirs + def GetLibBuilders(env): items = tuple()