meson: use dependency('gpgme') exclusively

This works everywhere that gpgme >= 1.13.0 because it is a pkg-config
dependency, and meson 0.51 adds a fallback config-tool dependency
provider that detects older versions of gpgme seamlessly via
gpgme-config.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
This commit is contained in:
Eli Schwartz 2019-06-25 16:28:17 -04:00 committed by Allan McRae
parent e7a2b2764a
commit 796c02af4c
2 changed files with 5 additions and 30 deletions

View file

@ -97,36 +97,13 @@ libcurl = dependency('libcurl',
static : get_option('buildstatic')) static : get_option('buildstatic'))
conf.set('HAVE_LIBCURL', libcurl.found()) conf.set('HAVE_LIBCURL', libcurl.found())
want_gpgme = get_option('gpgme') needed_gpgme_version = '>=1.3.0'
gpgme = dependency('gpgme', gpgme = dependency('gpgme',
required : false, version : needed_gpgme_version,
static : get_option('buildstatic')) required : get_option('gpgme'),
# gpgme recently began providing a pkg-config file. Create a fake dependency static : get_option('buildstatic'),
# object if it cannot be found, by manually searching for libs. not_found_message : 'gpgme @0@ is needed for GPG signature support'.format(needed_gpgme_version))
if not want_gpgme.disabled() and not gpgme.found()
gpgme_config = find_program('gpgme-config', required : want_gpgme)
if gpgme_config.found()
gpgme_version = run_command(gpgme_config, '--version').stdout().strip()
needed_gpgme_version = '>=1.3.0'
if gpgme_version.version_compare(needed_gpgme_version)
gpgme_libs = [
cc.find_library('gpgme',
dirs : [get_option('gpgme-libdir')]),
cc.find_library('gpg-error',
dirs : [get_option('gpgme-libdir')]),
cc.find_library('assuan',
dirs : [get_option('gpgme-libdir')]),
]
gpgme = declare_dependency(dependencies : gpgme_libs)
endif
endif
endif
conf.set('HAVE_LIBGPGME', gpgme.found()) conf.set('HAVE_LIBGPGME', gpgme.found())
if want_gpgme.enabled() and not conf.get('HAVE_LIBGPGME')
error('gpgme @0@ is needed for GPG signature support'.format(needed_gpgme_version))
endif
want_crypto = get_option('crypto') want_crypto = get_option('crypto')
if want_crypto == 'openssl' if want_crypto == 'openssl'

View file

@ -47,8 +47,6 @@ option('crypto', type : 'combo', choices : ['openssl', 'nettle'],
option('gpgme', type : 'feature', value : 'auto', option('gpgme', type : 'feature', value : 'auto',
description : 'use GPGME for PGP signature verification') description : 'use GPGME for PGP signature verification')
option('gpgme-libdir', type : 'string', value : '/usr/lib',
description : 'search directory for gpgme libraries.')
option('i18n', type : 'boolean', value : true, option('i18n', type : 'boolean', value : true,
description : 'enable localization of pacman, libalpm and scripts') description : 'enable localization of pacman, libalpm and scripts')