diff options
author | Dylan Baker <dylan@pnwbakers.com> | 2020-01-09 11:33:06 -0800 |
---|---|---|
committer | Dylan Baker <dylan@pnwbakers.com> | 2020-01-29 09:11:24 -0800 |
commit | fbad73c939a3c7f7f27994a81d68f4a9082c06a0 (patch) | |
tree | 3e568c07a44961b5cbfa70e49859d841ba882533 /mesonbuild/dependencies/dev.py | |
parent | 5d630c663c125b1e62cb88bd01054f1253c92bbe (diff) | |
download | meson-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.py | 18 |
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 |