Skip to content

Commit d8f8ae9

Browse files
authored
use versions from @bazel_skylib (#81)
1 parent d65d7b7 commit d8f8ae9

File tree

1 file changed

+3
-24
lines changed

1 file changed

+3
-24
lines changed

version.bzl

Lines changed: 3 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
"""Version rules for toolchains"""
22

3+
load("@bazel_skylib//lib:versions.bzl", compare = "versions")
34
load(
45
"@toolchains_arm_gnu//toolchain/archives:aarch64_none_elf.bzl",
56
"AARCH64_NONE_ELF",
@@ -17,34 +18,12 @@ load(
1718
"ARM_NONE_LINUX_GNUEABIHF",
1819
)
1920

20-
def _semver(version):
21-
"""Parse a semantic version string into a list of integers."""
22-
parts = [int(i.split("-")[0]) for i in version.split(".")]
23-
return struct(
24-
major = parts[0],
25-
minor = parts[1],
26-
patch = parts[2],
27-
)
28-
29-
def _compare_versions(left, right):
30-
"""Compare two semantic versions."""
31-
left = _semver(left)
32-
right = _semver(right)
33-
34-
# (a < b): -1, (a > b): 1, (a == b): 0.
35-
compare = lambda a, b: int(a > b) - int(a < b)
36-
37-
return compare(left.major, right.major) or \
38-
compare(left.minor, right.minor) or \
39-
compare(left.patch, right.patch) or \
40-
0
41-
4221
def max_version(versions):
4322
"""Obtains the minimum version from the list of version strings."""
4423
if versions:
4524
maximum = versions.pop(0)
4625
for version in versions:
47-
if _compare_versions(maximum, version) < 0:
26+
if not compare.is_at_most(maximum, version):
4827
maximum = version
4928
return maximum
5029
return None
@@ -54,7 +33,7 @@ def min_version(versions):
5433
if versions:
5534
minimum = versions.pop(0)
5635
for version in versions:
57-
if _compare_versions(minimum, version) > 0:
36+
if not compare.is_at_least(minimum, version):
5837
minimum = version
5938
return minimum
6039
return None

0 commit comments

Comments
 (0)