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)) compat_mode = int(env.get("LIB_COMPAT_MODE", 1))
verbose = not (env.GetOption("silent") or env.GetOption('clean')) verbose = not (env.GetOption("silent") or env.GetOption('clean'))
def _init_lib_builder(src_dir): def _check_lib_builder(lb):
lb = LibBuilderFactory.new(env, src_dir)
if lb.name in env.get("LIB_IGNORE", []): if lb.name in env.get("LIB_IGNORE", []):
if verbose: if verbose:
sys.stderr.write("Ignored library %s\n" % lb.path) sys.stderr.write("Ignored library %s\n" % lb.path)
@ -471,14 +470,14 @@ def GetLibBuilders(env):
if verbose: if verbose:
sys.stderr.write("Platform incompatible library %s\n" % sys.stderr.write("Platform incompatible library %s\n" %
lb.path) lb.path)
return return False
if compat_mode > 0 and not any([lb.is_framework_compatible(f) if compat_mode > 0 and not any([lb.is_framework_compatible(f)
for f in env_frameworks]): for f in env_frameworks]):
if verbose: if verbose:
sys.stderr.write("Framework incompatible library %s\n" % sys.stderr.write("Framework incompatible library %s\n" %
lb.path) lb.path)
return return False
return lb return True
for libs_dir in env['LIBSOURCE_DIRS']: for libs_dir in env['LIBSOURCE_DIRS']:
libs_dir = env.subst(libs_dir) libs_dir = env.subst(libs_dir)
@ -487,13 +486,12 @@ def GetLibBuilders(env):
for item in sorted(os.listdir(libs_dir)): for item in sorted(os.listdir(libs_dir)):
if item == "__cores__" or not isdir(join(libs_dir, item)): if item == "__cores__" or not isdir(join(libs_dir, item)):
continue continue
lb = _init_lib_builder(join(libs_dir, item)) lb = LibBuilderFactory.new(env, join(libs_dir, item))
if lb: if _check_lib_builder(lb):
items += (lb, ) items += (lb, )
for lib_dir in env.get("LIBSOURCE_EXTRA", []): for lb in env.get("EXTRA_LIB_BUILDERS", []):
lb = _init_lib_builder(lib_dir) if _check_lib_builder(lb):
if lb:
items += (lb, ) items += (lb, )
return items return items

View File

@ -16,7 +16,7 @@ import json
from os import getcwd, makedirs from os import getcwd, makedirs
from os.path import getsize, isdir, isfile, join 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.boards import cli as cmd_boards
from platformio.commands.init import cli as cmd_init from platformio.commands.init import cli as cmd_init