diff --git a/platformio/builder/tools/piolib.py b/platformio/builder/tools/piolib.py index 37929d81..70eefecb 100644 --- a/platformio/builder/tools/piolib.py +++ b/platformio/builder/tools/piolib.py @@ -460,8 +460,7 @@ def GetLibBuilders(env): compat_mode = int(env.get("LIB_COMPAT_MODE", 1)) verbose = not (env.GetOption("silent") or env.GetOption('clean')) - def _init_lib_builder(src_dir): - lb = LibBuilderFactory.new(env, src_dir) + def _check_lib_builder(lb): if lb.name in env.get("LIB_IGNORE", []): if verbose: sys.stderr.write("Ignored library %s\n" % lb.path) @@ -471,14 +470,14 @@ def GetLibBuilders(env): if verbose: sys.stderr.write("Platform incompatible library %s\n" % lb.path) - return + return False if compat_mode > 0 and not any([lb.is_framework_compatible(f) for f in env_frameworks]): if verbose: sys.stderr.write("Framework incompatible library %s\n" % lb.path) - return - return lb + return False + return True for libs_dir in env['LIBSOURCE_DIRS']: libs_dir = env.subst(libs_dir) @@ -487,13 +486,12 @@ def GetLibBuilders(env): for item in sorted(os.listdir(libs_dir)): if item == "__cores__" or not isdir(join(libs_dir, item)): continue - lb = _init_lib_builder(join(libs_dir, item)) - if lb: + lb = LibBuilderFactory.new(env, join(libs_dir, item)) + if _check_lib_builder(lb): items += (lb, ) - for lib_dir in env.get("LIBSOURCE_EXTRA", []): - lb = _init_lib_builder(lib_dir) - if lb: + for lb in env.get("EXTRA_LIB_BUILDERS", []): + if _check_lib_builder(lb): items += (lb, ) return items diff --git a/tests/commands/test_init.py b/tests/commands/test_init.py index 6a9984b9..6064fd49 100644 --- a/tests/commands/test_init.py +++ b/tests/commands/test_init.py @@ -16,7 +16,7 @@ import json from os import getcwd, makedirs from os.path import getsize, isdir, isfile, join -from platformio import util, exception +from platformio import exception, util from platformio.commands.boards import cli as cmd_boards from platformio.commands.init import cli as cmd_init