@@ -686,6 +686,9 @@ _llvm_distributions_base_url = {
686686 "20.1.2" : "https://github.com/llvm/llvm-project/releases/download/llvmorg-" ,
687687}
688688
689+ # Complete list of file suffixes used accross all distributions.
690+ _DIST_SUFFIXES = [".tar.xz" , ".tar.gz" , ".tar.zst" ]
691+
689692def _get_auth (ctx , urls ):
690693 """
691694 Given the list of URLs obtain the correct auth dict.
@@ -729,18 +732,16 @@ def _get_llvm_version(rctx):
729732 return llvm_version
730733
731734def _find_llvm_basename_list (llvm_version , arch , os ):
732- """Lookup (llvm_version, arch, os) in the list of basenames in `_llvm_distributions.` """
735+ """Lookup (llvm_version, arch, os) in the list of basenames in `_llvm_distributions`. """
733736 prefixes = []
734737
735738 if os == "raspbian" :
736- # TODO: Check the reported `arch` and return [] if unsupported
737739 prefixes .append ("clang+llvm-{llvm_version}-{arch}-{os}" .format (
738740 llvm_version = llvm_version ,
739741 arch = "armv7a" ,
740742 os = "linux-gnueabihf" ,
741743 ))
742744 elif arch == "x86_64" and os == "pc-solaris2.11" :
743- # TODO: Check the reported `arch` and return [] if unsupported
744745 prefixes .append ("clang+llvm-{llvm_version}-{arch}-{os}" .format (
745746 llvm_version = llvm_version ,
746747 arch = "amd64" ,
@@ -790,9 +791,8 @@ def _find_llvm_basename_list(llvm_version, arch, os):
790791 os = llvm_old_os ,
791792 ))
792793
793- suffixes = [".tar.gz" , ".tar.xz" ]
794794 for prefix in prefixes :
795- for suffix in suffixes :
795+ for suffix in _DIST_SUFFIXES :
796796 basename = prefix + suffix
797797 if basename in _llvm_distributions :
798798 return [basename ]
@@ -843,7 +843,7 @@ def _latest_llvm_release_name(arch, os, version_requirements):
843843def latest_llvm_release_name_or_fail (rctx , version_requirements ):
844844 """Find the latest distribution given `arch` and `os` from `rctx`.
845845
846- The function respects version requirements similar to Python package requirements.
846+ The function respects `version_requirements` similar to Python package requirements.
847847 The requirements string can be prefixed with "latest:".
848848 The requirements are a sequence of operators and versions separated by commas:
849849 ("<", "<=", ">", ">=", "!=", "==") <digit>+ ("." <digit>+)+
@@ -892,13 +892,12 @@ def _distribution_urls(rctx):
892892
893893 sha256 = _llvm_distributions [basename ]
894894
895- if basename .endswith (".tar.xz" ):
896- strip_prefix = basename [:(len (basename ) - len (".tar.xz" ))]
897- elif basename .endswith (".tar.gz" ):
898- strip_prefix = basename [:(len (basename ) - len (".tar.gz" ))]
899- elif basename .endswith (".tar.zst" ):
900- strip_prefix = basename [:(len (basename ) - len (".tar.zst" ))]
901- else :
895+ strip_prefix = None
896+ for suffix in _DIST_SUFFIXES :
897+ if basename .endswith (suffix ):
898+ strip_prefix = basename [:(len (basename ) - len (suffix ))]
899+ break
900+ if not strip_prefix :
902901 fail ("Unknown URL file extension {url}" , url = basename )
903902
904903 strip_prefix = strip_prefix .rstrip ("-rhel86" )
@@ -968,8 +967,6 @@ def _distributions_test_writer_impl(ctx):
968967 not_found = {k : v for k , v in _llvm_distributions .items ()}
969968 result = {}
970969 for llvm_version in _llvm_distributions_base_url .keys ():
971- #if not _version_ge(llvm_version, 18, 1, 1):
972- # continue
973970 for arch in arch_list :
974971 for os in os_list :
975972 basenames = _find_llvm_basename_list (llvm_version , arch , os )
0 commit comments