Allowed to override a default library builder via a new `builder field in a build group of library.json` // Resolve #3957

This commit is contained in:
Ivan Kravets
2021-09-26 15:27:41 +03:00
parent eab70fae3b
commit b6f783674b
3 changed files with 12 additions and 1 deletions

View File

@ -11,6 +11,7 @@ PlatformIO Core 5
5.2.1 (2021-??-??)
~~~~~~~~~~~~~~~~~~
- Allowed to override a default library builder via a new ``builder`` field in a ``build`` group of `library.json <https://docs.platformio.org/page/librarymanager/config.html#build>`__ manifest (`issue #3957 <https://github.com/platformio/platformio-core/issues/3957>`_)
- Fixed a "KeyError: Invalid board option 'build.cpu'" when using a precompiled library with a board that does not have a CPU field in the manifest (`issue #4056 <https://github.com/platformio/platformio-core/issues/4056>`_)
- Fixed a "FileExist" error when the `platformio ci <https://docs.platformio.org/en/latest/userguide/cmd_ci.html>`__ command is used in pair with the ``--keep-build-dir`` option (`issue #4011 <https://github.com/platformio/platformio-core/issues/4011>`_)

2
docs

Submodule docs updated: 395b056f8e...c9c5b9cd5f

View File

@ -59,6 +59,16 @@ class LibBuilderFactory(object):
clsname = "%sLibBuilder" % used_frameworks[0].title()
obj = getattr(sys.modules[__name__], clsname)(env, path, verbose=verbose)
# Handle PlatformIOLibBuilder.manifest.build.builder
# pylint: disable=protected-access
if isinstance(obj, PlatformIOLibBuilder) and obj._manifest.get("build", {}).get(
"builder"
):
obj = getattr(
sys.modules[__name__], obj._manifest.get("build", {}).get("builder")
)(env, path, verbose=verbose)
assert isinstance(obj, LibBuilderBase)
return obj