Allow to pass extra "EXTRA_LIB_BUILDERS" for Library Builder

This commit is contained in:
Ivan Kravets
2016-08-15 19:49:15 +03:00
parent bb01ec9a1e
commit 94299139cf
2 changed files with 9 additions and 11 deletions

View File

@ -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

View File

@ -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