aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/dependencies/dev.py
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2020-01-09 11:33:06 -0800
committerDylan Baker <dylan@pnwbakers.com>2020-01-29 09:11:24 -0800
commitfbad73c939a3c7f7f27994a81d68f4a9082c06a0 (patch)
tree3e568c07a44961b5cbfa70e49859d841ba882533 /mesonbuild/dependencies/dev.py
parent5d630c663c125b1e62cb88bd01054f1253c92bbe (diff)
downloadmeson-fbad73c939a3c7f7f27994a81d68f4a9082c06a0.zip
meson-fbad73c939a3c7f7f27994a81d68f4a9082c06a0.tar.gz
meson-fbad73c939a3c7f7f27994a81d68f4a9082c06a0.tar.bz2
dependencies: Use a DependencyFactory for threads
This lets us make a number of uses of threads safer, because we can use the threads_factory instead of the ThreadDependency
Diffstat (limited to 'mesonbuild/dependencies/dev.py')
-rw-r--r--mesonbuild/dependencies/dev.py18
1 files changed, 13 insertions, 5 deletions
diff --git a/mesonbuild/dependencies/dev.py b/mesonbuild/dependencies/dev.py
index 649975a..9bd6e4f 100644
--- a/mesonbuild/dependencies/dev.py
+++ b/mesonbuild/dependencies/dev.py
@@ -27,7 +27,7 @@ from .base import (
DependencyException, DependencyMethods, ExternalDependency, PkgConfigDependency,
strip_system_libdirs, ConfigToolDependency, CMakeDependency, DependencyFactory,
)
-from .misc import ThreadDependency
+from .misc import threads_factory
if T.TYPE_CHECKING:
from .. environment import Environment
@@ -50,8 +50,10 @@ class GTestDependencySystem(ExternalDependency):
super().__init__(name, environment, kwargs, language='cpp')
self.main = kwargs.get('main', False)
self.src_dirs = ['/usr/src/gtest/src', '/usr/src/googletest/googletest/src']
+ if not self._add_sub_dependency2(threads_factory(environment, self.for_machine, {})):
+ self.is_found = False
+ return
self.detect()
- self._add_sub_dependency(ThreadDependency, environment, kwargs)
def detect(self):
gtest_detect = self.clib_compiler.find_library("gtest", self.env, [])
@@ -117,7 +119,9 @@ class GMockDependencySystem(ExternalDependency):
def __init__(self, name: str, environment, kwargs):
super().__init__(name, environment, kwargs, language='cpp')
self.main = kwargs.get('main', False)
- self._add_sub_dependency(ThreadDependency, environment, kwargs)
+ if not self._add_sub_dependency2(threads_factory(environment, self.for_machine, {})):
+ self.is_found = False
+ return
# If we are getting main() from GMock, we definitely
# want to avoid linking in main() from GTest
@@ -231,7 +235,9 @@ class LLVMDependencyConfigTool(ConfigToolDependency):
self._set_old_link_args()
self.link_args = strip_system_libdirs(environment, self.for_machine, self.link_args)
self.link_args = self.__fix_bogus_link_args(self.link_args)
- self._add_sub_dependency(ThreadDependency, environment, kwargs)
+ if not self._add_sub_dependency2(threads_factory(environment, self.for_machine, {})):
+ self.is_found = False
+ return
def __fix_bogus_link_args(self, args):
"""This function attempts to fix bogus link arguments that llvm-config
@@ -394,7 +400,9 @@ class LLVMDependencyCMake(CMakeDependency):
defs = self.traceparser.get_cmake_var('PACKAGE_DEFINITIONS')
temp = ['-I' + x for x in inc_dirs] + defs
self.compile_args += [x for x in temp if x not in self.compile_args]
- self._add_sub_dependency(ThreadDependency, env, kwargs)
+ if not self._add_sub_dependency2(threads_factory(env, self.for_machine, {})):
+ self.is_found = False
+ return
def _main_cmake_file(self) -> str:
# Use a custom CMakeLists.txt for LLVM