forked from platformio/platformio-core
Don’t warn about known built-in libraries while building a project
This commit is contained in:
@ -244,14 +244,10 @@ def lib_list(lm, json_output):
|
|||||||
print_lib_item(item)
|
print_lib_item(item)
|
||||||
|
|
||||||
|
|
||||||
@cli.command("builtin", short_help="List built-in libraries")
|
@util.memoized
|
||||||
@click.option("--storage", multiple=True)
|
def get_builtin_libs(storage_names=None):
|
||||||
@click.option("--json-output", is_flag=True)
|
|
||||||
@click.pass_obj
|
|
||||||
def lib_builtin(lm, storage, json_output):
|
|
||||||
items = []
|
items = []
|
||||||
storage_names = storage or []
|
storage_names = storage_names or []
|
||||||
del storage
|
|
||||||
pm = PlatformManager()
|
pm = PlatformManager()
|
||||||
for manifest in pm.get_installed():
|
for manifest in pm.get_installed():
|
||||||
p = PlatformFactory.newPlatform(
|
p = PlatformFactory.newPlatform(
|
||||||
@ -261,7 +257,14 @@ def lib_builtin(lm, storage, json_output):
|
|||||||
continue
|
continue
|
||||||
lm = LibraryManager(storage['path'])
|
lm = LibraryManager(storage['path'])
|
||||||
items.append(dict(name=storage['name'], items=lm.get_installed()))
|
items.append(dict(name=storage['name'], items=lm.get_installed()))
|
||||||
|
return items
|
||||||
|
|
||||||
|
|
||||||
|
@cli.command("builtin", short_help="List built-in libraries")
|
||||||
|
@click.option("--storage", multiple=True)
|
||||||
|
@click.option("--json-output", is_flag=True)
|
||||||
|
def lib_builtin(storage, json_output):
|
||||||
|
items = get_builtin_libs(storage)
|
||||||
if json_output:
|
if json_output:
|
||||||
return click.echo(json.dumps(items))
|
return click.echo(json.dumps(items))
|
||||||
|
|
||||||
|
@ -22,6 +22,7 @@ import click
|
|||||||
|
|
||||||
from platformio import __version__, exception, telemetry, util
|
from platformio import __version__, exception, telemetry, util
|
||||||
from platformio.commands.lib import lib_install as cmd_lib_install
|
from platformio.commands.lib import lib_install as cmd_lib_install
|
||||||
|
from platformio.commands.lib import get_builtin_libs
|
||||||
from platformio.commands.platform import \
|
from platformio.commands.platform import \
|
||||||
platform_install as cmd_platform_install
|
platform_install as cmd_platform_install
|
||||||
from platformio.managers.lib import LibraryManager
|
from platformio.managers.lib import LibraryManager
|
||||||
@ -279,7 +280,15 @@ def _autoinstall_libdeps(ctx, libraries, verbose=False):
|
|||||||
try:
|
try:
|
||||||
ctx.invoke(cmd_lib_install, libraries=[lib], silent=not verbose)
|
ctx.invoke(cmd_lib_install, libraries=[lib], silent=not verbose)
|
||||||
except exception.LibNotFound as e:
|
except exception.LibNotFound as e:
|
||||||
click.secho("Warning! %s" % e, fg="yellow")
|
if not _is_builtin_lib(lib):
|
||||||
|
click.secho("Warning! %s" % e, fg="yellow")
|
||||||
|
|
||||||
|
|
||||||
|
def _is_builtin_lib(lib_name):
|
||||||
|
for storage in get_builtin_libs():
|
||||||
|
if any([l.get("name") == lib_name for l in storage['items']]):
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
def _clean_pioenvs_dir(pioenvs_dir):
|
def _clean_pioenvs_dir(pioenvs_dir):
|
||||||
|
@ -544,15 +544,26 @@ class PlatformBase(PlatformPackagesMixin, PlatformRunMixin):
|
|||||||
|
|
||||||
def get_lib_storages(self):
|
def get_lib_storages(self):
|
||||||
storages = []
|
storages = []
|
||||||
for _, opts in (self.frameworks or {}).items():
|
for opts in (self.frameworks or {}).values():
|
||||||
if "package" not in opts:
|
if "package" not in opts:
|
||||||
continue
|
continue
|
||||||
pkg_dir = self.get_package_dir(opts['package'])
|
pkg_dir = self.get_package_dir(opts['package'])
|
||||||
if not pkg_dir or not isdir(join(pkg_dir, "libraries")):
|
if not pkg_dir or not isdir(join(pkg_dir, "libraries")):
|
||||||
continue
|
continue
|
||||||
storages.append(
|
libs_dir = join(pkg_dir, "libraries")
|
||||||
dict(
|
storages.append({"name": opts['package'], "path": libs_dir})
|
||||||
name=opts['package'], path=join(pkg_dir, "libraries")))
|
libcores_dir = join(libs_dir, "__cores__")
|
||||||
|
if not isdir(libcores_dir):
|
||||||
|
continue
|
||||||
|
for item in os.listdir(libcores_dir):
|
||||||
|
libcore_dir = join(libcores_dir, item)
|
||||||
|
if not isdir(libcore_dir):
|
||||||
|
continue
|
||||||
|
storages.append({
|
||||||
|
"name": "%s-%s" % (opts['package'], item),
|
||||||
|
"path": libcore_dir
|
||||||
|
})
|
||||||
|
|
||||||
return storages
|
return storages
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user