diff --git a/HISTORY.rst b/HISTORY.rst index 767b0c51..d0c0c350 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -12,7 +12,6 @@ PlatformIO Core 5 ~~~~~~~~~~~~~~~~~~ - Run command from a PlatformIO package with a new `pio exec `__ (`issue #4163 `_) -- Run library extra script only at a build process (`issue #3915 `_) - Improved PIO Remote setup on credit-card sized computers (Raspberry Pi, BeagleBon, etc) (`issue #3865 `_) 5.2.5 (2022-02-10) diff --git a/docs b/docs index 36a1264d..d4f5db08 160000 --- a/docs +++ b/docs @@ -1 +1 @@ -Subproject commit 36a1264de4584432aec52f78a0f632374eb6e8f8 +Subproject commit d4f5db0882d5654c506c8da55bdaa311a868d4bf diff --git a/platformio/builder/tools/piolib.py b/platformio/builder/tools/piolib.py index f50724e7..3b57c1e7 100644 --- a/platformio/builder/tools/piolib.py +++ b/platformio/builder/tools/piolib.py @@ -285,8 +285,15 @@ class LibBuilderBase(object): return {} def process_extra_options(self): - self.env.ProcessFlags(self.build_flags) - self.env.ProcessUnFlags(self.build_unflags) + with fs.cd(self.path): + self.env.ProcessFlags(self.build_flags) + if self.extra_script: + self.env.SConscriptChdir(1) + self.env.SConscript( + os.path.abspath(self.extra_script), + exports={"env": self.env, "pio_lib_builder": self}, + ) + self.env.ProcessUnFlags(self.build_unflags) def process_dependencies(self): if not self.dependencies: @@ -440,15 +447,7 @@ class LibBuilderBase(object): for lb, lb_search_files in lib_inc_map.items(): self.depend_recursive(lb, lb_search_files) - def build(self): # pylint: disable=too-many-branches - if self.extra_script and not self._is_built: - with fs.cd(self.path): - self.env.SConscriptChdir(1) - self.env.SConscript( - os.path.abspath(self.extra_script), - exports={"env": self.env, "pio_lib_builder": self}, - ) - + def build(self): libs = [] for lb in self._depbuilders: libs.extend(lb.build()) @@ -461,8 +460,8 @@ class LibBuilderBase(object): if self._is_built: return libs - self._is_built = True + self.env.PrependUnique(CPPPATH=self.get_include_dirs()) if self.lib_ldf_mode == "off":