Update build script for PIO 4.4 (#19034)

This commit is contained in:
Victor Oliveira 2020-08-15 21:38:13 -03:00 committed by GitHub
parent 0e8cdd1938
commit bb64aa7841
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 7 deletions

View File

@ -106,7 +106,7 @@ jobs:
- name: Install PlatformIO - name: Install PlatformIO
run: | run: |
pip install -U https://github.com/platformio/platformio-core/archive/develop.zip pip install -U https://github.com/platformio/platformio-core/archive/master.zip
platformio update platformio update
- name: Check out the PR - name: Check out the PR

View File

@ -9,12 +9,24 @@ try:
import configparser import configparser
except ImportError: except ImportError:
import ConfigParser as configparser import ConfigParser as configparser
try:
# PIO < 4.4
from platformio.managers.package import PackageManager from platformio.managers.package import PackageManager
except ImportError:
# PIO >= 4.4
from platformio.package.meta import PackageSpec as PackageManager
Import("env") Import("env")
FEATURE_CONFIG = {} FEATURE_CONFIG = {}
def parse_pkg_uri(spec):
if PackageManager.__name__ == 'PackageSpec':
return PackageManager(spec).name
else:
name, _, _ = PackageManager.parse_pkg_uri(spec)
return name
def add_to_feat_cnf(feature, flines): def add_to_feat_cnf(feature, flines):
feat = FEATURE_CONFIG[feature] feat = FEATURE_CONFIG[feature]
atoms = re.sub(',\\s*', '\n', flines).strip().split('\n') atoms = re.sub(',\\s*', '\n', flines).strip().split('\n')
@ -56,7 +68,7 @@ def get_all_known_libs():
if not 'lib_deps' in feat: if not 'lib_deps' in feat:
continue continue
for dep in feat['lib_deps']: for dep in feat['lib_deps']:
name, _, _ = PackageManager.parse_pkg_uri(dep) name = parse_pkg_uri(dep)
known_libs.append(name) known_libs.append(name)
return known_libs return known_libs
@ -64,7 +76,7 @@ def get_all_env_libs():
env_libs = [] env_libs = []
lib_deps = env.GetProjectOption('lib_deps') lib_deps = env.GetProjectOption('lib_deps')
for dep in lib_deps: for dep in lib_deps:
name, _, _ = PackageManager.parse_pkg_uri(dep) name = parse_pkg_uri(dep)
env_libs.append(name) env_libs.append(name)
return env_libs return env_libs
@ -96,20 +108,20 @@ def apply_features_config():
# feat to add # feat to add
deps_to_add = {} deps_to_add = {}
for dep in feat['lib_deps']: for dep in feat['lib_deps']:
name, _, _ = PackageManager.parse_pkg_uri(dep) name = parse_pkg_uri(dep)
deps_to_add[name] = dep deps_to_add[name] = dep
# Does the env already have the dependency? # Does the env already have the dependency?
deps = env.GetProjectOption('lib_deps') deps = env.GetProjectOption('lib_deps')
for dep in deps: for dep in deps:
name, _, _ = PackageManager.parse_pkg_uri(dep) name = parse_pkg_uri(dep)
if name in deps_to_add: if name in deps_to_add:
del deps_to_add[name] del deps_to_add[name]
# Are there any libraries that should be ignored? # Are there any libraries that should be ignored?
lib_ignore = env.GetProjectOption('lib_ignore') lib_ignore = env.GetProjectOption('lib_ignore')
for dep in deps: for dep in deps:
name, _, _ = PackageManager.parse_pkg_uri(dep) name = parse_pkg_uri(dep)
if name in deps_to_add: if name in deps_to_add:
del deps_to_add[name] del deps_to_add[name]