forked from platformio/platformio-core
Added support for Arduino's library.properties `depends` field // Resolve #2781
This commit is contained in:
1 parent
bc69259dd1
commit
efe8e599fd
8 files changed
+169
-39
No files matched your search
@@ -23,7 +23,7 @@ import click
|
||||
import semantic_version
|
||||
|
||||
from platformio import app, exception, util
|
||||
from platformio.compat import glob_escape, string_types
|
||||
from platformio.compat import glob_escape
|
||||
from platformio.managers.package import BasePkgManager
|
||||
from platformio.managers.platform import PlatformFactory, PlatformManager
|
||||
from platformio.project.config import ProjectConfig
|
||||
@@ -61,29 +61,6 @@ class LibraryManager(BasePkgManager):
|
||||
|
||||
return None
|
||||
|
||||
@staticmethod
|
||||
def normalize_dependencies(dependencies):
|
||||
if not dependencies:
|
||||
return []
|
||||
items = []
|
||||
if isinstance(dependencies, dict):
|
||||
if "name" in dependencies:
|
||||
items.append(dependencies)
|
||||
else:
|
||||
for name, version in dependencies.items():
|
||||
items.append({"name": name, "version": version})
|
||||
elif isinstance(dependencies, list):
|
||||
items = [d for d in dependencies if "name" in d]
|
||||
for item in items:
|
||||
for k in ("frameworks", "platforms"):
|
||||
if k not in item or isinstance(k, list):
|
||||
continue
|
||||
if item[k] == "*":
|
||||
del item[k]
|
||||
elif isinstance(item[k], string_types):
|
||||
item[k] = [i.strip() for i in item[k].split(",") if i.strip()]
|
||||
return items
|
||||
|
||||
def max_satisfying_repo_version(self, versions, requirements=None):
|
||||
def _cmp_dates(datestr1, datestr2):
|
||||
date1 = util.parse_date(datestr1)
|
||||
@@ -312,7 +289,7 @@ class LibraryManager(BasePkgManager):
|
||||
click.secho("Installing dependencies", fg="yellow")
|
||||
|
||||
builtin_lib_storages = None
|
||||
for filters in self.normalize_dependencies(manifest["dependencies"]):
|
||||
for filters in manifest["dependencies"]:
|
||||
assert "name" in filters
|
||||
|
||||
# avoid circle dependencies
|
||||
|
||||
Reference in new issue
Block a user