Use ConfigToolDependency for libwmf

pull/2512/head
Dylan Baker 7 years ago
parent 11fbc982d3
commit df3c006456
  1. 5
      mesonbuild/dependencies/base.py
  2. 34
      mesonbuild/dependencies/misc.py
  3. 5
      test cases/frameworks/21 libwmf/meson.build

@ -46,8 +46,6 @@ class DependencyMethods(Enum):
QMAKE = 'qmake' QMAKE = 'qmake'
# Just specify the standard link arguments, assuming the operating system provides the library. # Just specify the standard link arguments, assuming the operating system provides the library.
SYSTEM = 'system' SYSTEM = 'system'
# Detect using libwmf-config
LIBWMFCONFIG = 'libwmf-config'
# This is only supported on OSX - search the frameworks directory by name. # This is only supported on OSX - search the frameworks directory by name.
EXTRAFRAMEWORK = 'extraframework' EXTRAFRAMEWORK = 'extraframework'
# Detect using the sysconfig module. # Detect using the sysconfig module.
@ -58,6 +56,7 @@ class DependencyMethods(Enum):
SDLCONFIG = 'sdlconfig' SDLCONFIG = 'sdlconfig'
CUPSCONFIG = 'cups-config' CUPSCONFIG = 'cups-config'
PCAPCONFIG = 'pcap-config' PCAPCONFIG = 'pcap-config'
LIBWMFCONFIG = 'libwmf-config'
class Dependency: class Dependency:
@ -78,7 +77,7 @@ class Dependency:
# This sets per-too config methods which are deprecated to to the new # This sets per-too config methods which are deprecated to to the new
# generic CONFIG_TOOL value. # generic CONFIG_TOOL value.
if method in [DependencyMethods.SDLCONFIG, DependencyMethods.CUPSCONFIG, if method in [DependencyMethods.SDLCONFIG, DependencyMethods.CUPSCONFIG,
DependencyMethods.PCAPCONFIG]: DependencyMethods.PCAPCONFIG, DependencyMethods.LIBWMFCONFIG]:
mlog.warning(textwrap.dedent("""\ mlog.warning(textwrap.dedent("""\
Configuration method {} has been deprecated in favor of Configuration method {} has been deprecated in favor of
'config-tool'. This will be removed in a future version of 'config-tool'. This will be removed in a future version of

@ -778,7 +778,6 @@ class CupsDependency(ExternalDependency):
return [DependencyMethods.PKGCONFIG, DependencyMethods.CONFIG_TOOL] return [DependencyMethods.PKGCONFIG, DependencyMethods.CONFIG_TOOL]
class LibWmfDependency(ExternalDependency): class LibWmfDependency(ExternalDependency):
def __init__(self, environment, kwargs): def __init__(self, environment, kwargs):
super().__init__('libwmf', environment, None, kwargs) super().__init__('libwmf', environment, None, kwargs)
@ -795,26 +794,27 @@ class LibWmfDependency(ExternalDependency):
return return
except Exception as e: except Exception as e:
mlog.debug('LibWmf not found via pkgconfig. Trying next, error was:', str(e)) mlog.debug('LibWmf not found via pkgconfig. Trying next, error was:', str(e))
if DependencyMethods.LIBWMFCONFIG in self.methods: if DependencyMethods.CONFIG_TOOL in self.methods:
libwmfconf = shutil.which('libwmf-config') try:
if libwmfconf: ctdep = ConfigToolDependency.factory(
stdo = Popen_safe(['libwmf-config', '--cflags'])[1] 'libwmf', environment, None, kwargs, ['libwmf-config'], 'libwmf-config')
self.compile_args = stdo.strip().split() if ctdep.found():
stdo = Popen_safe(['libwmf-config', '--libs'])[1] self.config = ctdep.config
self.link_args = stdo.strip().split() self.type_name = 'config-too'
stdo = Popen_safe(['libwmf-config', '--version'])[1] self.version = ctdep.version
self.version = stdo.strip() self.compile_args = ctdep.get_config_value(['--cflags'], 'compile_args')
self.is_found = True self.link_args = ctdep.get_config_value(['--libs'], 'link_args')
mlog.log('Dependency', mlog.bold('libwmf'), 'found:', self.is_found = True
mlog.green('YES'), '(%s)' % libwmfconf) return
return except Exception as e:
mlog.debug('Could not find libwmf-config binary, trying next.') mlog.debug('cups not found via libwmf-config. Trying next, error was:', str(e))
def get_methods(self): def get_methods(self):
if mesonlib.is_osx(): if mesonlib.is_osx():
return [DependencyMethods.PKGCONFIG, DependencyMethods.LIBWMFCONFIG, DependencyMethods.EXTRAFRAMEWORK] return [DependencyMethods.PKGCONFIG, DependencyMethods.CONFIG_TOOL, DependencyMethods.EXTRAFRAMEWORK]
else: else:
return [DependencyMethods.PKGCONFIG, DependencyMethods.LIBWMFCONFIG] return [DependencyMethods.PKGCONFIG, DependencyMethods.CONFIG_TOOL]
# Generated with boost_names.py # Generated with boost_names.py
BOOST_LIBS = [ BOOST_LIBS = [

@ -7,3 +7,8 @@ message('libwmf version is "@0@"'.format(libwmf_ver))
e = executable('libwmf_prog', 'libwmf_prog.c', dependencies : libwmf_dep) e = executable('libwmf_prog', 'libwmf_prog.c', dependencies : libwmf_dep)
test('libwmftest', e) test('libwmftest', e)
# Test using the method keyword:
dependency('libwmf', method : 'config-tool')
dependency('libwmf', method : 'libwmf-config')

Loading…
Cancel
Save