aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/compilers/compilers.py
diff options
context:
space:
mode:
authorElliott Sales de Andrade <quantum.analyst@gmail.com>2018-04-07 04:06:29 -0400
committerElliott Sales de Andrade <quantum.analyst@gmail.com>2018-04-17 02:04:37 -0400
commitdbb025a175f31dfb1c8bb3a1e3bb7030e2625329 (patch)
tree88534c032302debb17a42b4c2476013088b2405c /mesonbuild/compilers/compilers.py
parentf7a7059250ab9cf71c68ca78812a24a35ee745f6 (diff)
downloadmeson-dbb025a175f31dfb1c8bb3a1e3bb7030e2625329.zip
meson-dbb025a175f31dfb1c8bb3a1e3bb7030e2625329.tar.gz
meson-dbb025a175f31dfb1c8bb3a1e3bb7030e2625329.tar.bz2
Add an OpenMP dependency.
This works similarly to the thread dependency which stores the various inconsistent flags in each compiler.
Diffstat (limited to 'mesonbuild/compilers/compilers.py')
-rw-r--r--mesonbuild/compilers/compilers.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py
index 99e9164..a383095 100644
--- a/mesonbuild/compilers/compilers.py
+++ b/mesonbuild/compilers/compilers.py
@@ -937,6 +937,9 @@ class Compiler:
def thread_flags(self, env):
return []
+ def openmp_flags(self):
+ raise EnvironmentException('Language %s does not support OpenMP flags.' % self.get_display_language())
+
GCC_STANDARD = 0
GCC_OSX = 1
@@ -1152,6 +1155,9 @@ class GnuCompiler:
def get_default_include_dirs(self):
return gnulike_default_include_dirs(self.exelist, self.language)
+ def openmp_flags(self):
+ return ['-fopenmp']
+
class ElbrusCompiler(GnuCompiler):
# Elbrus compiler is nearly like GCC, but does not support
@@ -1270,6 +1276,14 @@ class ClangCompiler:
def get_default_include_dirs(self):
return gnulike_default_include_dirs(self.exelist, self.language)
+ def openmp_flags(self):
+ if version_compare(self.version, '>=3.8.0'):
+ return ['-fopenmp']
+ elif version_compare(self.version, '>=3.7.0'):
+ return ['-fopenmp=libomp']
+ else:
+ return None
+
# Tested on linux for ICC 14.0.3, 15.0.6, 16.0.4, 17.0.1
class IntelCompiler:
@@ -1332,6 +1346,12 @@ class IntelCompiler:
def get_default_include_dirs(self):
return gnulike_default_include_dirs(self.exelist, self.language)
+ def openmp_flags(self):
+ if version_compare(self.version, '>=15.0.0'):
+ return ['-qopenmp']
+ else:
+ return ['-openmp']
+
class ArmCompiler:
# Functionality that is common to all ARM family compilers.