aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/dependencies/misc.py
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2020-01-14 11:21:52 -0800
committerDylan Baker <dylan@pnwbakers.com>2020-01-29 09:11:24 -0800
commit4fc71e05c40e00f2939db6f5ffc0cc6d7af32a55 (patch)
treed6f1f678320c238107fb791485b5c5b83edac90a /mesonbuild/dependencies/misc.py
parent5ab29e264bee6cfd180693fb22c0f335dda2f75c (diff)
downloadmeson-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.py34
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})