From c7249aadf33fff696f8d3ac0b91e66a3110c67f0 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Fri, 14 Apr 2017 23:16:52 +0300 Subject: [PATCH] =?UTF-8?q?Generate=20=E2=80=9CSRC=5FFILTER=E2=80=9D=20on-?= =?UTF-8?q?the-fly=20for=20a=20custom=20library?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs | 2 +- platformio/builder/tools/piolib.py | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/docs b/docs index 9cae82ca..310c5426 160000 --- a/docs +++ b/docs @@ -1 +1 @@ -Subproject commit 9cae82ca3a787b752d17265001639bb1eed82347 +Subproject commit 310c542680b833866ef3256bd0b28ea763e1a9cd diff --git a/platformio/builder/tools/piolib.py b/platformio/builder/tools/piolib.py index 57163ee9..0531d65e 100644 --- a/platformio/builder/tools/piolib.py +++ b/platformio/builder/tools/piolib.py @@ -100,6 +100,9 @@ class LibBuilderBase(object): self._circular_deps = list() self._scanned_paths = list() + # reset source filter, could be overridden with extra script + self.env['SRC_FILTER'] = "" + # process extra options and append to build environment self.process_extra_options() @@ -225,6 +228,7 @@ class LibBuilderBase(object): self.env.ProcessUnFlags(self.build_unflags) self.env.ProcessFlags(self.build_flags) if self.extra_script: + self.env.SConscriptChdir(1) self.env.SConscript( realpath(self.extra_script), exports={"env": self.env, @@ -513,6 +517,8 @@ class PlatformIOLibBuilder(LibBuilderBase): def src_filter(self): if "srcFilter" in self._manifest.get("build", {}): return self._manifest.get("build").get("srcFilter") + elif self.env['SRC_FILTER']: + return self.env['SRC_FILTER'] elif self._is_arduino_manifest(): return ArduinoLibBuilder.src_filter.fget(self) return LibBuilderBase.src_filter.fget(self)