llvm: don't detect +flang multiple times (#49876)
fixes #49831 Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
This commit is contained in:
parent
357089f347
commit
9e6e478ccf
@ -68,6 +68,34 @@ paths:
|
|||||||
cxx: ".*/bin/clang[+][+]"
|
cxx: ".*/bin/clang[+][+]"
|
||||||
fortran: ".*/bin/flang"
|
fortran: ".*/bin/flang"
|
||||||
|
|
||||||
|
# flang and flang-new in the same directory
|
||||||
|
- layout:
|
||||||
|
- executables:
|
||||||
|
- "bin/clang"
|
||||||
|
- "bin/clang++"
|
||||||
|
script: |
|
||||||
|
echo "clang version 20.1.0-rc1 (https://github.com/llvm/llvm-project af7f483a9d801252247b6c72e3763c1f55c5a506)"
|
||||||
|
echo "Target: x86_64-unknown-linux-gnu"
|
||||||
|
echo "Thread model: posix"
|
||||||
|
echo "InstalledDir: /tmp/clang/LLVM-20.1.0-rc1-Linux-X64/bin"
|
||||||
|
- executables:
|
||||||
|
- "bin/flang"
|
||||||
|
- "bin/flang-new"
|
||||||
|
script: |
|
||||||
|
echo "flang version 20.1.0-rc1 (https://github.com/llvm/llvm-project af7f483a9d801252247b6c72e3763c1f55c5a506)"
|
||||||
|
echo "Target: x86_64-unknown-linux-gnu"
|
||||||
|
echo "Thread model: posix"
|
||||||
|
echo "InstalledDir: /tmp/clang/LLVM-20.1.0-rc1-Linux-X64/bin"
|
||||||
|
platforms: ["darwin", "linux"]
|
||||||
|
results:
|
||||||
|
- spec: 'llvm@20.1.0 +flang+clang~lld~lldb'
|
||||||
|
extra_attributes:
|
||||||
|
compilers:
|
||||||
|
c: ".*/bin/clang"
|
||||||
|
cxx: ".*/bin/clang[+][+]"
|
||||||
|
fortran: ".*/bin/flang"
|
||||||
|
|
||||||
|
|
||||||
# `~` and other weird characters in the version string
|
# `~` and other weird characters in the version string
|
||||||
- layout:
|
- layout:
|
||||||
- executables:
|
- executables:
|
||||||
|
@ -801,7 +801,7 @@ def determine_version(cls, exe):
|
|||||||
def determine_variants(cls, exes, version_str):
|
def determine_variants(cls, exes, version_str):
|
||||||
# Do not need to reuse more general logic from CompilerPackage
|
# Do not need to reuse more general logic from CompilerPackage
|
||||||
# because LLVM has kindly named compilers
|
# because LLVM has kindly named compilers
|
||||||
variants, compilers = ["+clang"], {}
|
variants, compilers = {"+clang"}, {}
|
||||||
lld_found, lldb_found = False, False
|
lld_found, lldb_found = False, False
|
||||||
for exe in sorted(exes, key=len):
|
for exe in sorted(exes, key=len):
|
||||||
name = os.path.basename(exe)
|
name = os.path.basename(exe)
|
||||||
@ -809,18 +809,18 @@ def determine_variants(cls, exes, version_str):
|
|||||||
compilers.setdefault("cxx", exe)
|
compilers.setdefault("cxx", exe)
|
||||||
elif "clang" in name:
|
elif "clang" in name:
|
||||||
compilers.setdefault("c", exe)
|
compilers.setdefault("c", exe)
|
||||||
elif "flang" in name:
|
elif "flang" in name and "fortran" not in compilers:
|
||||||
variants.append("+flang")
|
variants.add("+flang")
|
||||||
compilers.setdefault("fortran", exe)
|
compilers.setdefault("fortran", exe)
|
||||||
elif "ld.lld" in name:
|
elif "ld.lld" in name:
|
||||||
lld_found = True
|
lld_found = True
|
||||||
elif "lldb" in name:
|
elif "lldb" in name:
|
||||||
lldb_found = True
|
lldb_found = True
|
||||||
|
|
||||||
variants.append("+lld" if lld_found else "~lld")
|
variants.add("+lld" if lld_found else "~lld")
|
||||||
variants.append("+lldb" if lldb_found else "~lldb")
|
variants.add("+lldb" if lldb_found else "~lldb")
|
||||||
|
|
||||||
return "".join(variants), {"compilers": compilers}
|
return "".join(sorted(variants)), {"compilers": compilers}
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def validate_detected_spec(cls, spec, extra_attributes):
|
def validate_detected_spec(cls, spec, extra_attributes):
|
||||||
|
Loading…
Reference in New Issue
Block a user