mirror of
https://github.com/platformio/platformio-core.git
synced 2025-07-29 17:47:14 +02:00
Do not install dependencies that are built-in libraries
This commit is contained in:
@ -14,6 +14,7 @@
|
||||
|
||||
import os
|
||||
|
||||
from platformio import util
|
||||
from platformio.compat import ci_strings_are_equal
|
||||
from platformio.package.manager.platform import PlatformPackageManager
|
||||
from platformio.package.meta import PackageSpec
|
||||
@ -22,6 +23,7 @@ from platformio.project.config import ProjectConfig
|
||||
from platformio.project.exception import InvalidProjectConfError
|
||||
|
||||
|
||||
@util.memoized(expire="60s")
|
||||
def get_builtin_libs(storage_names=None):
|
||||
# pylint: disable=import-outside-toplevel
|
||||
from platformio.package.manager.library import LibraryPackageManager
|
||||
@ -45,8 +47,8 @@ def get_builtin_libs(storage_names=None):
|
||||
return items
|
||||
|
||||
|
||||
def is_builtin_lib(name, storages=None):
|
||||
for storage in storages or get_builtin_libs():
|
||||
def is_builtin_lib(name):
|
||||
for storage in get_builtin_libs():
|
||||
for lib in storage["items"]:
|
||||
if lib.get("name") == name:
|
||||
return True
|
||||
|
@ -15,6 +15,7 @@
|
||||
import json
|
||||
import os
|
||||
|
||||
from platformio.commands.lib.helpers import is_builtin_lib
|
||||
from platformio.package.exception import MissingPackageManifestError
|
||||
from platformio.package.manager.base import BasePackageManager
|
||||
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")):
|
||||
return root
|
||||
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