Use ConfigToolDependency for libwmf
This commit is contained in:
parent
11fbc982d3
commit
df3c006456
|
@ -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.link_args = ctdep.get_config_value(['--libs'], 'link_args')
|
||||||
self.is_found = True
|
self.is_found = True
|
||||||
mlog.log('Dependency', mlog.bold('libwmf'), 'found:',
|
|
||||||
mlog.green('YES'), '(%s)' % libwmfconf)
|
|
||||||
return
|
return
|
||||||
mlog.debug('Could not find libwmf-config binary, trying next.')
|
except Exception as e:
|
||||||
|
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…
Reference in New Issue