clang.py: detect flang-new (#43815)

If a flang-new exists, which is rather unlikely, it probably means the
user wants it as a fortran compiler.
This commit is contained in:
Harmen Stoppels 2024-04-24 19:11:02 +02:00 committed by GitHub
parent 6c3218920f
commit 1224a3e8cf
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -38,10 +38,10 @@ class Clang(Compiler):
cxx_names = ["clang++"] cxx_names = ["clang++"]
# Subclasses use possible names of Fortran 77 compiler # Subclasses use possible names of Fortran 77 compiler
f77_names = ["flang"] f77_names = ["flang-new", "flang"]
# Subclasses use possible names of Fortran 90 compiler # Subclasses use possible names of Fortran 90 compiler
fc_names = ["flang"] fc_names = ["flang-new", "flang"]
version_argument = "--version" version_argument = "--version"
@ -171,10 +171,11 @@ def extract_version_from_output(cls, output):
match = re.search( match = re.search(
# Normal clang compiler versions are left as-is # Normal clang compiler versions are left as-is
r"clang version ([^ )\n]+)-svn[~.\w\d-]*|" r"(?:clang|flang-new) version ([^ )\n]+)-svn[~.\w\d-]*|"
# Don't include hyphenated patch numbers in the version # Don't include hyphenated patch numbers in the version
# (see https://github.com/spack/spack/pull/14365 for details) # (see https://github.com/spack/spack/pull/14365 for details)
r"clang version ([^ )\n]+?)-[~.\w\d-]*|" r"clang version ([^ )\n]+)", r"(?:clang|flang-new) version ([^ )\n]+?)-[~.\w\d-]*|"
r"(?:clang|flang-new) version ([^ )\n]+)",
output, output,
) )
if match: if match: