summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Junghans <christoph.junghans@gmail.com>2017-10-10 14:52:10 -0600
committerTodd Gamblin <tgamblin@llnl.gov>2017-10-10 13:52:10 -0700
commitcb7628c9a440b24b8031a971e725a4e093f48af6 (patch)
tree05c0b0d9ca5ff6efc72b8a1d304dbc6840f4acac
parent88b515ede84d1818358848ade652f95005cdb6d7 (diff)
downloadspack-cb7628c9a440b24b8031a971e725a4e093f48af6.tar.gz
spack-cb7628c9a440b24b8031a971e725a4e093f48af6.tar.bz2
spack-cb7628c9a440b24b8031a971e725a4e093f48af6.tar.xz
spack-cb7628c9a440b24b8031a971e725a4e093f48af6.zip
compilers/clang: add flang (#5503)
* compilers/clang: add flang * Update clang.py
-rwxr-xr-xlib/spack/env/cc4
l---------lib/spack/env/clang/flang1
-rw-r--r--lib/spack/spack/compilers/clang.py21
3 files changed, 16 insertions, 10 deletions
diff --git a/lib/spack/env/cc b/lib/spack/env/cc
index 3d118d8d7c..d76a06760d 100755
--- a/lib/spack/env/cc
+++ b/lib/spack/env/cc
@@ -110,13 +110,13 @@ case "$command" in
comp="CXX"
lang_flags=CXX
;;
- ftn|f90|fc|f95|gfortran|ifort|pgfortran|xlf90|xlf90_r|nagfor)
+ ftn|f90|fc|f95|gfortran|flang|ifort|pgfortran|xlf90|xlf90_r|nagfor)
command="$SPACK_FC"
language="Fortran 90"
comp="FC"
lang_flags=F
;;
- f77|gfortran|ifort|pgfortran|xlf|xlf_r|nagfor|ftn)
+ f77|gfortran|flang|ifort|pgfortran|xlf|xlf_r|nagfor|ftn)
command="$SPACK_F77"
language="Fortran 77"
comp="F77"
diff --git a/lib/spack/env/clang/flang b/lib/spack/env/clang/flang
new file mode 120000
index 0000000000..82c2b8e90a
--- /dev/null
+++ b/lib/spack/env/clang/flang
@@ -0,0 +1 @@
+../cc \ No newline at end of file
diff --git a/lib/spack/spack/compilers/clang.py b/lib/spack/spack/compilers/clang.py
index 81e0babc1d..eea4798798 100644
--- a/lib/spack/spack/compilers/clang.py
+++ b/lib/spack/spack/compilers/clang.py
@@ -42,18 +42,23 @@ class Clang(Compiler):
cxx_names = ['clang++']
# Subclasses use possible names of Fortran 77 compiler
- f77_names = ['gfortran']
+ f77_names = ['flang', 'gfortran']
# Subclasses use possible names of Fortran 90 compiler
- fc_names = ['gfortran']
+ fc_names = ['flang', 'gfortran']
# Named wrapper links within spack.build_env_path
link_paths = {'cc': 'clang/clang',
- 'cxx': 'clang/clang++',
- # Use default wrappers for fortran, in case provided in
- # compilers.yaml
- 'f77': 'clang/gfortran',
- 'fc': 'clang/gfortran'}
+ 'cxx': 'clang/clang++'}
+
+ if sys.platform == 'darwin':
+ # Use default wrappers for fortran, in case provided in
+ # compilers.yaml
+ link_paths['f77'] = 'clang/gfortran'
+ link_paths['fc'] = 'clang/gfortran'
+ else:
+ link_paths['f77'] = 'clang/flang'
+ link_paths['fc'] = 'clang/flang'
@property
def is_apple(self):
@@ -169,7 +174,7 @@ class Clang(Compiler):
if sys.platform == 'darwin':
return cls.default_version('clang')
else:
- return 'unknown'
+ return cls.default_version(fc)
@classmethod
def f77_version(cls, f77):