summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2019-03-21 01:21:37 +0200
committerGitHub <noreply@github.com>2019-03-21 01:21:37 +0200
commit3a613564d3f2db35ca03b2b8658f7050f5ed56d7 (patch)
tree101ea46c91394e8d3d782620bc5630dd3c16803c
parent3bd27c2d8ae7c6157296ed82a016a90d8f49cc2d (diff)
parent1f342a208122c86fa564688c518ecc63b67650df (diff)
downloadmeson-3a613564d3f2db35ca03b2b8658f7050f5ed56d7.tar.gz
Merge pull request #5116 from dcbaker/openmp-de-specialize
dependencies/openmp: Don't special case OpenMP
-rw-r--r--mesonbuild/backend/backends.py2
-rw-r--r--mesonbuild/backend/ninjabackend.py5
-rw-r--r--mesonbuild/compilers/c.py2
-rw-r--r--mesonbuild/dependencies/base.py3
-rw-r--r--mesonbuild/dependencies/misc.py7
5 files changed, 3 insertions, 16 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py
index 5b270d3d3..d69091b73 100644
--- a/mesonbuild/backend/backends.py
+++ b/mesonbuild/backend/backends.py
@@ -641,8 +641,6 @@ class Backend:
# pkg-config puts the thread flags itself via `Cflags:`
if dep.need_threads():
commands += compiler.thread_flags(self.environment)
- elif dep.need_openmp():
- commands += compiler.openmp_flags()
# Fortran requires extra include directives.
if compiler.language == 'fortran':
for lt in target.link_targets:
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py
index 644640619..7f36b7b0b 100644
--- a/mesonbuild/backend/ninjabackend.py
+++ b/mesonbuild/backend/ninjabackend.py
@@ -2494,7 +2494,6 @@ rule FORTRAN_DEP_HACK%s
# For 'automagic' deps: Boost and GTest. Also dependency('threads').
# pkg-config puts the thread flags itself via `Cflags:`
need_threads = False
- need_openmp = False
commands += target.link_args
# External deps must be last because target link libraries may depend on them.
@@ -2503,15 +2502,11 @@ rule FORTRAN_DEP_HACK%s
# https://github.com/mesonbuild/meson/issues/1718
commands.extend_preserving_lflags(dep.get_link_args())
need_threads |= dep.need_threads()
- need_openmp |= dep.need_openmp()
for d in target.get_dependencies():
if isinstance(d, build.StaticLibrary):
for dep in d.get_external_deps():
need_threads |= dep.need_threads()
- need_openmp |= dep.need_openmp()
commands.extend_preserving_lflags(dep.get_link_args())
- if need_openmp:
- commands += linker.openmp_flags()
if need_threads:
commands += linker.thread_link_flags(self.environment)
diff --git a/mesonbuild/compilers/c.py b/mesonbuild/compilers/c.py
index cac27ad2a..4294bb15d 100644
--- a/mesonbuild/compilers/c.py
+++ b/mesonbuild/compilers/c.py
@@ -410,8 +410,6 @@ class CCompiler(Compiler):
args += d.get_compile_args()
if d.need_threads():
args += self.thread_flags(env)
- elif d.need_openmp():
- args += self.openmp_flags()
if mode == 'link':
# Add link flags needed to find dependencies
args += d.get_link_args()
diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py
index de25895c5..4e61f4ce0 100644
--- a/mesonbuild/dependencies/base.py
+++ b/mesonbuild/dependencies/base.py
@@ -152,9 +152,6 @@ class Dependency:
def get_exe_args(self, compiler):
return []
- def need_openmp(self):
- return False
-
def need_threads(self):
return False
diff --git a/mesonbuild/dependencies/misc.py b/mesonbuild/dependencies/misc.py
index c95acffd7..52e8ee600 100644
--- a/mesonbuild/dependencies/misc.py
+++ b/mesonbuild/dependencies/misc.py
@@ -363,7 +363,8 @@ class OpenMPDependency(ExternalDependency):
super().__init__('openmp', environment, language, kwargs)
self.is_found = False
try:
- openmp_date = self.clib_compiler.get_define('_OPENMP', '', self.env, [], [self])
+ openmp_date = self.clib_compiler.get_define(
+ '_OPENMP', '', self.env, self.clib_compiler.openmp_flags(), [self])
except mesonlib.EnvironmentException as e:
mlog.debug('OpenMP support not available in the compiler')
mlog.debug(e)
@@ -373,12 +374,10 @@ class OpenMPDependency(ExternalDependency):
self.version = self.VERSIONS[openmp_date]
if self.clib_compiler.has_header('omp.h', '', self.env, dependencies=[self]):
self.is_found = True
+ self.compile_args = self.link_args = self.clib_compiler.openmp_flags()
else:
mlog.log(mlog.yellow('WARNING:'), 'OpenMP found but omp.h missing.')
- def need_openmp(self) -> bool:
- return True
-
class ThreadDependency(ExternalDependency):
def __init__(self, environment, kwargs):