aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/compilers
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/compilers')
-rw-r--r--mesonbuild/compilers/__init__.py2
-rw-r--r--mesonbuild/compilers/compilers.py6
-rw-r--r--mesonbuild/compilers/fortran.py14
3 files changed, 20 insertions, 2 deletions
diff --git a/mesonbuild/compilers/__init__.py b/mesonbuild/compilers/__init__.py
index b5b2475..b4807c6 100644
--- a/mesonbuild/compilers/__init__.py
+++ b/mesonbuild/compilers/__init__.py
@@ -62,6 +62,7 @@ __all__ = [
'GnuDCompiler',
'GnuFortranCompiler',
'ElbrusFortranCompiler',
+ 'FlangFortranCompiler',
'GnuObjCCompiler',
'GnuObjCPPCompiler',
'IntelCompiler',
@@ -153,6 +154,7 @@ from .fortran import (
G95FortranCompiler,
GnuFortranCompiler,
ElbrusFortranCompiler,
+ FlangFortranCompiler,
IntelFortranCompiler,
NAGFortranCompiler,
Open64FortranCompiler,
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py
index 34c0e3b..758b1c3 100644
--- a/mesonbuild/compilers/compilers.py
+++ b/mesonbuild/compilers/compilers.py
@@ -1617,7 +1617,11 @@ class PGICompiler:
return ['-silent']
def openmp_flags(self):
- return ['-fopenmp']
+ return ['-mp']
+
+ def get_allow_undefined_link_args(self):
+ return []
+
class ElbrusCompiler(GnuCompiler):
# Elbrus compiler is nearly like GCC, but does not support
diff --git a/mesonbuild/compilers/fortran.py b/mesonbuild/compilers/fortran.py
index 2eb4c71..57d1dd9 100644
--- a/mesonbuild/compilers/fortran.py
+++ b/mesonbuild/compilers/fortran.py
@@ -22,6 +22,7 @@ from .compilers import (
clike_debug_args,
Compiler,
GnuCompiler,
+ ClangCompiler,
ElbrusCompiler,
IntelCompiler,
PGICompiler
@@ -370,7 +371,7 @@ class PathScaleFortranCompiler(FortranCompiler):
return ['-mp']
-class PGIFortranCompiler(FortranCompiler):
+class PGIFortranCompiler(PGICompiler, FortranCompiler):
def __init__(self, exelist, version, is_cross, exe_wrapper=None, **kwags):
FortranCompiler.__init__(self, exelist, version, is_cross, exe_wrapper, **kwags)
PGICompiler.__init__(self, CompilerType.PGI_STANDARD)
@@ -382,6 +383,17 @@ class PGIFortranCompiler(FortranCompiler):
return val
+class FlangFortranCompiler(ClangCompiler, FortranCompiler):
+ def __init__(self, exelist, version, is_cross, exe_wrapper=None, **kwags):
+ FortranCompiler.__init__(self, exelist, version, is_cross, exe_wrapper, **kwags)
+ ClangCompiler.__init__(self, CompilerType.CLANG_STANDARD)
+ self.id = 'flang'
+ default_warn_args = ['-Minform=inform']
+ self.warn_args = {'1': default_warn_args,
+ '2': default_warn_args,
+ '3': default_warn_args}
+
+
class Open64FortranCompiler(FortranCompiler):
def __init__(self, exelist, version, is_cross, exe_wrapper=None, **kwags):
FortranCompiler.__init__(self, exelist, version, is_cross, exe_wrapper, **kwags)