From 9a95b0df564fd0bee1d9e80e5a6dc19b0dd46206 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Fri, 24 May 2019 01:15:47 +0300 Subject: [PATCH] Fix handling custom includeDir and srcDir for library.json // Resolve #2518 --- platformio/builder/tools/piolib.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/platformio/builder/tools/piolib.py b/platformio/builder/tools/piolib.py index 2f38e649..a132c379 100644 --- a/platformio/builder/tools/piolib.py +++ b/platformio/builder/tools/piolib.py @@ -182,7 +182,7 @@ class LibBuilderBase(object): def get_include_dirs(self): items = [] include_dir = self.include_dir - if include_dir and include_dir not in items: + if include_dir: items.append(include_dir) items.append(self.src_dir) return items @@ -723,13 +723,15 @@ class PlatformIOLibBuilder(LibBuilderBase): @property def include_dir(self): if "includeDir" in self._manifest.get("build", {}): - return self._manifest.get("build").get("includeDir") + with util.cd(self.path): + return realpath(self._manifest.get("build").get("includeDir")) return LibBuilderBase.include_dir.fget(self) @property def src_dir(self): if "srcDir" in self._manifest.get("build", {}): - return self._manifest.get("build").get("srcDir") + with util.cd(self.path): + return realpath(self._manifest.get("build").get("srcDir")) return LibBuilderBase.src_dir.fget(self) @property @@ -804,6 +806,7 @@ class PlatformIOLibBuilder(LibBuilderBase): for path in self.env.get("CPPPATH", []): if path not in self.envorigin.get("CPPPATH", []): include_dirs.append(self.env.subst(path)) + return include_dirs