diff options
-rw-r--r-- | mesonbuild/dependencies/__init__.py | 4 | ||||
-rw-r--r-- | mesonbuild/dependencies/misc.py | 43 | ||||
-rw-r--r-- | test cases/frameworks/20 cups/meson.build | 1 |
3 files changed, 16 insertions, 32 deletions
diff --git a/mesonbuild/dependencies/__init__.py b/mesonbuild/dependencies/__init__.py index 6b4250e..9d050f1 100644 --- a/mesonbuild/dependencies/__init__.py +++ b/mesonbuild/dependencies/__init__.py @@ -24,7 +24,7 @@ from .dev import ValgrindDependency, gmock_factory, gtest_factory, llvm_factory from .coarrays import CoarrayDependency from .mpi import MPIDependency from .scalapack import ScalapackDependency -from .misc import (BlocksDependency, CursesDependency, NetCDFDependency, OpenMPDependency, ThreadDependency, CupsDependency, LibWmfDependency, LibGCryptDependency, GpgmeDependency, ShadercDependency, pcap_factory, python3_factory) +from .misc import (BlocksDependency, CursesDependency, NetCDFDependency, OpenMPDependency, ThreadDependency, LibWmfDependency, LibGCryptDependency, GpgmeDependency, ShadercDependency, cups_factory, pcap_factory, python3_factory) from .platform import AppleFrameworks from .ui import GLDependency, GnuStepDependency, Qt4Dependency, Qt5Dependency, SDL2Dependency, WxDependency, vulkan_factory @@ -53,7 +53,7 @@ packages.update({ 'python3': python3_factory, 'threads': ThreadDependency, 'pcap': pcap_factory, - 'cups': CupsDependency, + 'cups': cups_factory, 'libwmf': LibWmfDependency, 'libgcrypt': LibGCryptDependency, 'gpgme': GpgmeDependency, diff --git a/mesonbuild/dependencies/misc.py b/mesonbuild/dependencies/misc.py index f39fb98..fd4dcd8 100644 --- a/mesonbuild/dependencies/misc.py +++ b/mesonbuild/dependencies/misc.py @@ -26,9 +26,8 @@ from ..mesonlib import listify from .base import ( DependencyException, DependencyMethods, ExternalDependency, - ExtraFrameworkDependency, PkgConfigDependency, - CMakeDependency, ConfigToolDependency, process_method_kw, - DependencyFactory, + PkgConfigDependency, CMakeDependency, ConfigToolDependency, + process_method_kw, DependencyFactory, ) class NetCDFDependency(ExternalDependency): @@ -330,36 +329,13 @@ class PcapDependencyConfigTool(ConfigToolDependency): return v -class CupsDependency(ExternalDependency): - def __init__(self, environment, kwargs): - super().__init__('cups', environment, kwargs) - - @classmethod - def _factory(cls, environment, kwargs): - methods = process_method_kw(cls.get_methods(), kwargs) - candidates = [] - - if DependencyMethods.PKGCONFIG in methods: - candidates.append(functools.partial(PkgConfigDependency, 'cups', environment, kwargs)) - - if DependencyMethods.CONFIG_TOOL in methods: - candidates.append(functools.partial(ConfigToolDependency.factory, - 'cups', environment, None, - kwargs, ['cups-config'], - 'cups-config', CupsDependency.tool_finish_init)) +class CupsDependencyConfigTool(ConfigToolDependency): - if DependencyMethods.EXTRAFRAMEWORK in methods: - if mesonlib.is_osx(): - candidates.append(functools.partial( - ExtraFrameworkDependency, 'cups', environment, kwargs)) - - if DependencyMethods.CMAKE in methods: - candidates.append(functools.partial(CMakeDependency, 'Cups', environment, kwargs)) - - return candidates + tools = ['cups-config'] + tool_name = 'cups-config' @staticmethod - def tool_finish_init(ctdep): + def finish_init(ctdep): ctdep.compile_args = ctdep.get_config_value(['--cflags'], 'compile_args') ctdep.link_args = ctdep.get_config_value(['--ldflags', '--libs'], 'link_args') @@ -544,6 +520,13 @@ class CursesDependency(ExternalDependency): return [DependencyMethods.AUTO, DependencyMethods.PKGCONFIG] +cups_factory = DependencyFactory( + 'cups', + [DependencyMethods.PKGCONFIG, DependencyMethods.CONFIG_TOOL, DependencyMethods.EXTRAFRAMEWORK, DependencyMethods.CMAKE], + configtool_class=CupsDependencyConfigTool, + cmake_name='Cups', +) + pcap_factory = DependencyFactory( 'pcap', [DependencyMethods.PKGCONFIG, DependencyMethods.CONFIG_TOOL], diff --git a/test cases/frameworks/20 cups/meson.build b/test cases/frameworks/20 cups/meson.build index d50c4a8..3f50684 100644 --- a/test cases/frameworks/20 cups/meson.build +++ b/test cases/frameworks/20 cups/meson.build @@ -14,6 +14,7 @@ test('cupstest', e) # options dep = dependency('cups', version : '>=1.4', method : 'cups-config') dep = dependency('cups', version : '>=1.4', method : 'config-tool') +dep = dependency('cups', version : '>=1.4', method : 'cmake') # check we can apply a version constraint dependency('cups', version: '>=@0@'.format(dep.version()), method: 'pkg-config', required: false) |