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)