build: check for gpgme with pkg-config before gpgme-config
gpgme in git master now supports pkg-config and with the next release we can and should prefer its use. However, retain the legacy code that enables building with older versions of gpgme, as a fallback. Signed-off-by: Eli Schwartz <eschwartz@archlinux.org> Signed-off-by: Allan McRae <allan@archlinux.org>
This commit is contained in:
parent
226d2c1248
commit
0a72874734
3 changed files with 62 additions and 51 deletions
10
configure.ac
10
configure.ac
|
@ -268,7 +268,11 @@ AS_IF([test "x$with_gpgme" != "xno"],
|
|||
[AC_MSG_RESULT([no])])
|
||||
|
||||
have_gpgme=no
|
||||
AS_IF([test "x$with_gpgme" != "xno"],
|
||||
if test "x$with_gpgme" != "xno"; then
|
||||
PKG_CHECK_MODULES(GPGME, [gpgme],
|
||||
[AC_DEFINE([HAVE_LIBGPGME], [1], [Define if gpgme should be used to provide GPG signature support.])
|
||||
AC_SUBST(pc_gpgme, [gpgme])
|
||||
have_gpgme=yes],
|
||||
[AM_PATH_GPGME([1.3.0],
|
||||
[LIBS_save="$LIBS"
|
||||
CPPFLAGS_save="$CPPFLAGS"
|
||||
|
@ -285,7 +289,8 @@ AS_IF([test "x$with_gpgme" != "xno"],
|
|||
[[return gpgme_check_version("1.3.0");]])],
|
||||
[AC_MSG_RESULT([yes])
|
||||
have_gpgme=yes
|
||||
AC_DEFINE([HAVE_LIBGPGME], [1], [Define if gpgme should be used to provide GPG signature support.])],
|
||||
AC_DEFINE([HAVE_LIBGPGME], [1], [Define if gpgme should be used to provide GPG signature support.])
|
||||
AC_SUBST(pc_gpgme_libs, ["$GPGME_LIBS"])],
|
||||
[AC_MSG_RESULT([no])
|
||||
have_gpgme=no
|
||||
unset GPGME_LIBS
|
||||
|
@ -299,6 +304,7 @@ AS_IF([test "x$with_gpgme" != "xno"],
|
|||
CFLAGS="$CFLAGS_save"
|
||||
unset CPPFLAGS_save
|
||||
unset CFLAGS_save],)])
|
||||
fi
|
||||
|
||||
AS_IF([test "x$have_gpgme" = xno -a "x$with_gpgme" = xyes],
|
||||
[AC_MSG_FAILURE([--with-gpgme was given, but gpgme was not found])])
|
||||
|
|
|
@ -7,7 +7,7 @@ Name: libalpm
|
|||
Description: Arch Linux package management library
|
||||
URL: http://www.archlinux.org/pacman/
|
||||
Version: @LIB_VERSION@
|
||||
Requires.private: libarchive @pc_crypto@ @pc_libcurl@
|
||||
Requires.private: libarchive @pc_crypto@ @pc_libcurl@ @pc_gpgme@
|
||||
Cflags: -I${includedir} @LFS_CFLAGS@
|
||||
Libs: -L${libdir} -lalpm
|
||||
Libs.private: @LIBS@ @GPGME_LIBS@
|
||||
Libs.private: @LIBS@ @pc_gpgme_libs@
|
||||
|
|
35
meson.build
35
meson.build
|
@ -98,29 +98,34 @@ libcurl = dependency('libcurl',
|
|||
conf.set('HAVE_LIBCURL', libcurl.found())
|
||||
|
||||
want_gpgme = get_option('gpgme')
|
||||
gpgme_config = find_program('gpgme-config', required : want_gpgme)
|
||||
if not want_gpgme.disabled() and gpgme_config.found()
|
||||
gpgme = dependency('gpgme',
|
||||
required : false,
|
||||
static : get_option('buildstatic'))
|
||||
# gpgme recently began providing a pkg-config file. Create a fake dependency
|
||||
# object if it cannot be found, by manually searching for libs.
|
||||
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'
|
||||
have = gpgme_version.version_compare(needed_gpgme_version)
|
||||
if want_gpgme.enabled() and not have
|
||||
error('gpgme @0@ is needed for GPG signature support'.format(needed_gpgme_version))
|
||||
endif
|
||||
|
||||
if gpgme_version.version_compare(needed_gpgme_version)
|
||||
gpgme_libs = [
|
||||
cc.find_library('gpgme', required : have,
|
||||
cc.find_library('gpgme',
|
||||
dirs : [get_option('gpgme-libdir')]),
|
||||
cc.find_library('gpg-error', required : have,
|
||||
cc.find_library('gpg-error',
|
||||
dirs : [get_option('gpgme-libdir')]),
|
||||
cc.find_library('assuan', required : have,
|
||||
cc.find_library('assuan',
|
||||
dirs : [get_option('gpgme-libdir')]),
|
||||
]
|
||||
gpgme = declare_dependency(dependencies : gpgme_libs)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
conf.set('HAVE_LIBGPGME', have)
|
||||
else
|
||||
gpgme_libs = []
|
||||
conf.set('HAVE_LIBGPGME', false)
|
||||
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')
|
||||
|
@ -341,7 +346,7 @@ libalpm_a = static_library(
|
|||
'alpm',
|
||||
libalpm_sources,
|
||||
include_directories : includes,
|
||||
dependencies : [crypto_provider, libarchive, libcurl] + gpgme_libs,
|
||||
dependencies : [crypto_provider, libarchive, libcurl, gpgme],
|
||||
link_with : [libcommon],
|
||||
install : true)
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue