From d9939d93c358a565466d78e411707c885356250c Mon Sep 17 00:00:00 2001 From: Valerii Koval Date: Mon, 8 May 2023 12:34:12 +0300 Subject: [PATCH] Add support for new versions of upstream toolchain packages Resolves #1092, resolves #1093 --- platform.py | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/platform.py b/platform.py index ec1154b..516fed4 100644 --- a/platform.py +++ b/platform.py @@ -288,11 +288,24 @@ class Espressif32Platform(PlatformBase): def extract_toolchain_versions(tool_deps): def _parse_version(original_version): assert original_version - match = re.match(r"^gcc(\d+)_(\d+)_(\d+)\-esp\-(.+)$", original_version) - if not match: - raise ValueError("Bad package version `%s`" % original_version) - assert len(match.groups()) == 4 - return "%s.%s.%s+%s" % (match.groups()) + version_patterns = ( + r"^gcc(?P\d+)_(?P\d+)_(?P\d+)-esp-(?P.+)$", + r"^esp-(?P.+)-(?P\d+)\.(?P\d+)\.?(?P\d+)$", + r"^esp-(?P\d+)\.(?P\d+)\.(?P\d+)(_(?P.+))?$", + ) + for pattern in version_patterns: + match = re.search(pattern, original_version) + if match: + result = "%s.%s.%s" % ( + match.group("MAJOR"), + match.group("MINOR"), + match.group("PATCH"), + ) + if match.group("EXTRA"): + result = result + "+%s" % match.group("EXTRA") + return result + + raise ValueError("Bad package version `%s`" % original_version) if not tool_deps: raise ValueError(