diff options
author | Dylan Baker <dylan@pnwbakers.com> | 2020-01-14 11:21:52 -0800 |
---|---|---|
committer | Dylan Baker <dylan@pnwbakers.com> | 2020-01-29 09:11:24 -0800 |
commit | 4fc71e05c40e00f2939db6f5ffc0cc6d7af32a55 (patch) | |
tree | d6f1f678320c238107fb791485b5c5b83edac90a /mesonbuild/dependencies/misc.py | |
parent | 5ab29e264bee6cfd180693fb22c0f335dda2f75c (diff) | |
download | meson-4fc71e05c40e00f2939db6f5ffc0cc6d7af32a55.zip meson-4fc71e05c40e00f2939db6f5ffc0cc6d7af32a55.tar.gz meson-4fc71e05c40e00f2939db6f5ffc0cc6d7af32a55.tar.bz2 |
dependencies: Use a factory for curses
Diffstat (limited to 'mesonbuild/dependencies/misc.py')
-rw-r--r-- | mesonbuild/dependencies/misc.py | 34 |
1 files changed, 11 insertions, 23 deletions
diff --git a/mesonbuild/dependencies/misc.py b/mesonbuild/dependencies/misc.py index 7eba808..07948c9 100644 --- a/mesonbuild/dependencies/misc.py +++ b/mesonbuild/dependencies/misc.py @@ -23,12 +23,11 @@ import typing as T from .. import mlog from .. import mesonlib from ..environment import detect_cpu_family -from ..mesonlib import listify from .base import ( DependencyException, DependencyMethods, ExternalDependency, PkgConfigDependency, CMakeDependency, ConfigToolDependency, - process_method_kw, factory_methods, DependencyFactory, + factory_methods, DependencyFactory, ) if T.TYPE_CHECKING: @@ -393,28 +392,17 @@ class ShadercDependency(ExternalDependency): return [DependencyMethods.SYSTEM, DependencyMethods.PKGCONFIG] -class CursesDependency(ExternalDependency): - def __init__(self, environment, kwargs): - super().__init__('curses', environment, None, kwargs) - self.name = 'curses' - self.is_found = False - methods = listify(self.methods) - - if set([DependencyMethods.AUTO, DependencyMethods.PKGCONFIG]).intersection(methods): - pkgconfig_files = ['ncurses', 'ncursesw'] - for pkg in pkgconfig_files: - pkgdep = PkgConfigDependency(pkg, environment, kwargs) - if pkgdep.found(): - self.compile_args = pkgdep.get_compile_args() - self.link_args = pkgdep.get_link_args() - self.version = pkgdep.get_version() - self.is_found = True - self.pcdep = pkgdep - return +@factory_methods({DependencyMethods.PKGCONFIG}) +def curses_factory(env: 'Environment', for_machine: 'MachineChoice', + kwargs: T.Dict[str, T.Any], methods: T.List[DependencyMethods]) -> T.List['DependencyType']: + candidates = [] # type: T.List['DependencyType'] - @staticmethod - def get_methods(): - return [DependencyMethods.AUTO, DependencyMethods.PKGCONFIG] + if DependencyMethods.PKGCONFIG in methods: + pkgconfig_files = ['ncurses', 'ncursesw'] + for pkg in pkgconfig_files: + candidates.append(functools.partial(PkgConfigDependency, pkg, env, kwargs)) + + return candidates @factory_methods({DependencyMethods.PKGCONFIG, DependencyMethods.SYSTEM}) |