From dbb025a175f31dfb1c8bb3a1e3bb7030e2625329 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Sat, 7 Apr 2018 04:06:29 -0400 Subject: Add an OpenMP dependency. This works similarly to the thread dependency which stores the various inconsistent flags in each compiler. --- mesonbuild/compilers/compilers.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'mesonbuild/compilers/compilers.py') 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. -- cgit v1.1 From 461f3af294331d36415673f1bf69c54658d13017 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Sat, 7 Apr 2018 04:15:11 -0400 Subject: Explicitly check for OpenMP headers. --- mesonbuild/compilers/compilers.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'mesonbuild/compilers/compilers.py') diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py index a383095..37326d8 100644 --- a/mesonbuild/compilers/compilers.py +++ b/mesonbuild/compilers/compilers.py @@ -1282,7 +1282,8 @@ class ClangCompiler: elif version_compare(self.version, '>=3.7.0'): return ['-fopenmp=libomp'] else: - return None + # 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 -- cgit v1.1