Skip to content

Commit e95fc76

Browse files
committed
* Provide a single global list for possible file suffixes.
* Nitpicking tweaks...
1 parent bfc35b2 commit e95fc76

File tree

1 file changed

+12
-15
lines changed

1 file changed

+12
-15
lines changed

toolchain/internal/llvm_distributions.bzl

+12-15
Original file line numberDiff line numberDiff line change
@@ -677,6 +677,9 @@ _llvm_distributions_base_url = {
677677
"20.1.1": "https://github.com/llvm/llvm-project/releases/download/llvmorg-",
678678
}
679679

680+
# Complete list of file suffixes used accross all distributions.
681+
_DIST_SUFFIXES = [".tar.xz", ".tar.gz", ".tar.zst"]
682+
680683
def _get_auth(ctx, urls):
681684
"""
682685
Given the list of URLs obtain the correct auth dict.
@@ -720,18 +723,16 @@ def _get_llvm_version(rctx):
720723
return llvm_version
721724

722725
def _find_llvm_basename_list(llvm_version, arch, os):
723-
"""Lookup (llvm_version, arch, os) in the list of basenames in `_llvm_distributions.`"""
726+
"""Lookup (llvm_version, arch, os) in the list of basenames in `_llvm_distributions`."""
724727
prefixes = []
725728

726729
if os == "raspbian":
727-
# TODO: Check the reported `arch` and return [] if unsupported
728730
prefixes.append("clang+llvm-{llvm_version}-{arch}-{os}".format(
729731
llvm_version = llvm_version,
730732
arch = "armv7a",
731733
os = "linux-gnueabihf",
732734
))
733735
elif arch == "x86_64" and os == "pc-solaris2.11":
734-
# TODO: Check the reported `arch` and return [] if unsupported
735736
prefixes.append("clang+llvm-{llvm_version}-{arch}-{os}".format(
736737
llvm_version = llvm_version,
737738
arch = "amd64",
@@ -781,9 +782,8 @@ def _find_llvm_basename_list(llvm_version, arch, os):
781782
os = llvm_old_os,
782783
))
783784

784-
suffixes = [".tar.gz", ".tar.xz"]
785785
for prefix in prefixes:
786-
for suffix in suffixes:
786+
for suffix in _DIST_SUFFIXES:
787787
basename = prefix + suffix
788788
if basename in _llvm_distributions:
789789
return [basename]
@@ -834,7 +834,7 @@ def _latest_llvm_release_name(arch, os, version_requirements):
834834
def latest_llvm_release_name_or_fail(rctx, version_requirements):
835835
"""Find the latest distribution given `arch` and `os` from `rctx`.
836836
837-
The function respects version requirements similar to Python package requirements.
837+
The function respects `version_requirements` similar to Python package requirements.
838838
The requirements string can be prefixed with "latest:".
839839
The requirements are a sequence of operators and versions separated by commas:
840840
("<", "<=", ">", ">=", "!=", "==") <digit>+ ("." <digit>+)+
@@ -883,13 +883,12 @@ def _distribution_urls(rctx):
883883

884884
sha256 = _llvm_distributions[basename]
885885

886-
if basename.endswith(".tar.xz"):
887-
strip_prefix = basename[:(len(basename) - len(".tar.xz"))]
888-
elif basename.endswith(".tar.gz"):
889-
strip_prefix = basename[:(len(basename) - len(".tar.gz"))]
890-
elif basename.endswith(".tar.zst"):
891-
strip_prefix = basename[:(len(basename) - len(".tar.zst"))]
892-
else:
886+
strip_prefix = None
887+
for suffix in _DIST_SUFFIXES:
888+
if basename.endswith(suffix):
889+
strip_prefix = basename[:(len(basename) - len(suffix))]
890+
break
891+
if not strip_prefix:
893892
fail("Unknown URL file extension {url}", url = basename)
894893

895894
strip_prefix = strip_prefix.rstrip("-rhel86")
@@ -959,8 +958,6 @@ def _distributions_test_writer_impl(ctx):
959958
not_found = {k: v for k, v in _llvm_distributions.items()}
960959
result = {}
961960
for llvm_version in _llvm_distributions_base_url.keys():
962-
#if not _version_ge(llvm_version, 18, 1, 1):
963-
# continue
964961
for arch in arch_list:
965962
for os in os_list:
966963
basenames = _find_llvm_basename_list(llvm_version, arch, os)

0 commit comments

Comments
 (0)