From e0f19cf5204784c374f0a04926d2b3aa728480ed Mon Sep 17 00:00:00 2001 From: Daniel Mensinger Date: Wed, 20 Feb 2019 14:45:29 +0100 Subject: LLVM dependency refactoring --- mesonbuild/dependencies/dev.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/mesonbuild/dependencies/dev.py b/mesonbuild/dependencies/dev.py index 5ee85bf..2a89606 100644 --- a/mesonbuild/dependencies/dev.py +++ b/mesonbuild/dependencies/dev.py @@ -192,7 +192,7 @@ class GMockDependency(ExternalDependency): return [DependencyMethods.PKGCONFIG, DependencyMethods.SYSTEM] -class LLVMDependency(ConfigToolDependency): +class LLVMDependencyConfigTool(ConfigToolDependency): """ LLVM uses a special tool, llvm-config, which has arguments for getting c args, cxx args, and ldargs as well as version. @@ -399,6 +399,23 @@ class LLVMDependency(ConfigToolDependency): return 'modules: ' + ', '.join(self.module_details) return '' +class LLVMDependency(ExternalDependency): + def __init__(self, env, kwargs): + super().__init__('LLVM', env, 'cpp', kwargs) + + @classmethod + def _factory(cls, env, kwargs): + methods = cls._process_method_kw(kwargs) + candidates = [] + + if DependencyMethods.CONFIG_TOOL in methods: + candidates.append(functools.partial(LLVMDependencyConfigTool, env, kwargs)) + + return candidates + + @staticmethod + def get_methods(): + return [DependencyMethods.CONFIG_TOOL] class ValgrindDependency(PkgConfigDependency): ''' -- cgit v1.1