forked from platformio/platformio-core
Do not install dependencies that are built-in libraries
This commit is contained in:
@ -14,6 +14,7 @@
|
|||||||
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
from platformio import util
|
||||||
from platformio.compat import ci_strings_are_equal
|
from platformio.compat import ci_strings_are_equal
|
||||||
from platformio.package.manager.platform import PlatformPackageManager
|
from platformio.package.manager.platform import PlatformPackageManager
|
||||||
from platformio.package.meta import PackageSpec
|
from platformio.package.meta import PackageSpec
|
||||||
@ -22,6 +23,7 @@ from platformio.project.config import ProjectConfig
|
|||||||
from platformio.project.exception import InvalidProjectConfError
|
from platformio.project.exception import InvalidProjectConfError
|
||||||
|
|
||||||
|
|
||||||
|
@util.memoized(expire="60s")
|
||||||
def get_builtin_libs(storage_names=None):
|
def get_builtin_libs(storage_names=None):
|
||||||
# pylint: disable=import-outside-toplevel
|
# pylint: disable=import-outside-toplevel
|
||||||
from platformio.package.manager.library import LibraryPackageManager
|
from platformio.package.manager.library import LibraryPackageManager
|
||||||
@ -45,8 +47,8 @@ def get_builtin_libs(storage_names=None):
|
|||||||
return items
|
return items
|
||||||
|
|
||||||
|
|
||||||
def is_builtin_lib(name, storages=None):
|
def is_builtin_lib(name):
|
||||||
for storage in storages or get_builtin_libs():
|
for storage in get_builtin_libs():
|
||||||
for lib in storage["items"]:
|
for lib in storage["items"]:
|
||||||
if lib.get("name") == name:
|
if lib.get("name") == name:
|
||||||
return True
|
return True
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
from platformio.commands.lib.helpers import is_builtin_lib
|
||||||
from platformio.package.exception import MissingPackageManifestError
|
from platformio.package.exception import MissingPackageManifestError
|
||||||
from platformio.package.manager.base import BasePackageManager
|
from platformio.package.manager.base import BasePackageManager
|
||||||
from platformio.package.meta import PackageSpec, PackageType
|
from platformio.package.meta import PackageSpec, PackageType
|
||||||
@ -77,3 +78,13 @@ class LibraryPackageManager(BasePackageManager): # pylint: disable=too-many-anc
|
|||||||
if fname.endswith((".c", ".cpp", ".h", ".hpp", ".S")):
|
if fname.endswith((".c", ".cpp", ".h", ".hpp", ".S")):
|
||||||
return root
|
return root
|
||||||
return path
|
return path
|
||||||
|
|
||||||
|
def install_dependency(self, dependency):
|
||||||
|
spec = self.dependency_to_spec(dependency)
|
||||||
|
# skip built-in dependencies
|
||||||
|
not_builtin_conds = [spec.external, spec.owner]
|
||||||
|
if not any(not_builtin_conds):
|
||||||
|
not_builtin_conds.append(not is_builtin_lib(spec.name))
|
||||||
|
if any(not_builtin_conds):
|
||||||
|
return super(LibraryPackageManager, self).install_dependency(dependency)
|
||||||
|
return None
|
||||||
|
Reference in New Issue
Block a user