diff --git a/HISTORY.rst b/HISTORY.rst index da37187d..b2c73dac 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -35,6 +35,7 @@ PlatformIO Core 5 - Upgraded build engine to the SCons 4.2 (`release notes `__) - Fixed an issue with broken binary file extension when a custom ``PROGNAME`` contains dot symbols (`issue #3906 `_) + - Fixed an issue when PlatformIO archives a library that does not contain C/C++ source files (`issue #4019 `_) * **Static Code Analysis** diff --git a/platformio/builder/tools/platformio.py b/platformio/builder/tools/platformio.py index c3acf555..304c5bae 100644 --- a/platformio/builder/tools/platformio.py +++ b/platformio/builder/tools/platformio.py @@ -348,9 +348,10 @@ def BuildFrameworks(env, frameworks): def BuildLibrary(env, variant_dir, src_dir, src_filter=None): env.ProcessUnFlags(env.get("BUILD_UNFLAGS")) - return env.StaticLibrary( - env.subst(variant_dir), env.CollectBuildFiles(variant_dir, src_dir, src_filter) - ) + nodes = env.CollectBuildFiles(variant_dir, src_dir, src_filter) + if nodes: + return env.StaticLibrary(env.subst(variant_dir), nodes) + return env.BuildSources(variant_dir, src_dir, src_filter) def BuildSources(env, variant_dir, src_dir, src_filter=None):