diff --git a/HISTORY.rst b/HISTORY.rst index ebb34014..05b6efbb 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -7,6 +7,9 @@ PlatformIO 3.0 3.4.1 (2017-??-??) ~~~~~~~~~~~~~~~~~~ +* Use a root of library when filtering source code using + `library.json `__ + and ``srcFilter`` field * Do not ask for board ID when initialize project for desktop platform * Fixed issue when can not load broken PIO Core state diff --git a/platformio/builder/tools/piolib.py b/platformio/builder/tools/piolib.py index 8f7a1f52..40ec5213 100644 --- a/platformio/builder/tools/piolib.py +++ b/platformio/builder/tools/piolib.py @@ -521,6 +521,15 @@ class PlatformIOLibBuilder(LibBuilderBase): def _is_arduino_manifest(self): return isfile(join(self.path, "library.properties")) + @property + def src_dir(self): + if all([ + "srcFilter" in self._manifest.get("build", {}) or + self.env['SRC_FILTER'], not self._is_arduino_manifest() + ]): + return self.path + return LibBuilderBase.src_dir.fget(self) + @property def src_filter(self): if "srcFilter" in self._manifest.get("build", {}):