aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/compilers/compilers.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2018-04-17 21:39:13 +0300
committerGitHub <noreply@github.com>2018-04-17 21:39:13 +0300
commit88ca3805e74e67d81499bcf02362d8935dd8ec7a (patch)
tree29bd531405a41e29ccabb9a3fb7c416b4ba3a977 /mesonbuild/compilers/compilers.py
parent348248f0a19bdc80e8a184befb2faaa1d5e66f40 (diff)
parent46ccbe48e7dc902f699d0554055f89c49df4d415 (diff)
downloadmeson-88ca3805e74e67d81499bcf02362d8935dd8ec7a.zip
meson-88ca3805e74e67d81499bcf02362d8935dd8ec7a.tar.gz
meson-88ca3805e74e67d81499bcf02362d8935dd8ec7a.tar.bz2
Merge pull request #1852 from QuLogic/openmp
Add an OpenMP dependency.
Diffstat (limited to 'mesonbuild/compilers/compilers.py')
-rw-r--r--mesonbuild/compilers/compilers.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py
index 99e9164..37326d8 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,15 @@ 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:
+ # Shouldn't work, but it'll be checked explicitly in the OpenMP dependency.
+ return []
+
# Tested on linux for ICC 14.0.3, 15.0.6, 16.0.4, 17.0.1
class IntelCompiler:
@@ -1332,6 +1347,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.