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])])
|
[AC_MSG_RESULT([no])])
|
||||||
|
|
||||||
have_gpgme=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],
|
[AM_PATH_GPGME([1.3.0],
|
||||||
[LIBS_save="$LIBS"
|
[LIBS_save="$LIBS"
|
||||||
CPPFLAGS_save="$CPPFLAGS"
|
CPPFLAGS_save="$CPPFLAGS"
|
||||||
|
@ -285,7 +289,8 @@ AS_IF([test "x$with_gpgme" != "xno"],
|
||||||
[[return gpgme_check_version("1.3.0");]])],
|
[[return gpgme_check_version("1.3.0");]])],
|
||||||
[AC_MSG_RESULT([yes])
|
[AC_MSG_RESULT([yes])
|
||||||
have_gpgme=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])
|
[AC_MSG_RESULT([no])
|
||||||
have_gpgme=no
|
have_gpgme=no
|
||||||
unset GPGME_LIBS
|
unset GPGME_LIBS
|
||||||
|
@ -299,6 +304,7 @@ AS_IF([test "x$with_gpgme" != "xno"],
|
||||||
CFLAGS="$CFLAGS_save"
|
CFLAGS="$CFLAGS_save"
|
||||||
unset CPPFLAGS_save
|
unset CPPFLAGS_save
|
||||||
unset CFLAGS_save],)])
|
unset CFLAGS_save],)])
|
||||||
|
fi
|
||||||
|
|
||||||
AS_IF([test "x$have_gpgme" = xno -a "x$with_gpgme" = xyes],
|
AS_IF([test "x$have_gpgme" = xno -a "x$with_gpgme" = xyes],
|
||||||
[AC_MSG_FAILURE([--with-gpgme was given, but gpgme was not found])])
|
[AC_MSG_FAILURE([--with-gpgme was given, but gpgme was not found])])
|
||||||
|
|
|
@ -7,7 +7,7 @@ Name: libalpm
|
||||||
Description: Arch Linux package management library
|
Description: Arch Linux package management library
|
||||||
URL: http://www.archlinux.org/pacman/
|
URL: http://www.archlinux.org/pacman/
|
||||||
Version: @LIB_VERSION@
|
Version: @LIB_VERSION@
|
||||||
Requires.private: libarchive @pc_crypto@ @pc_libcurl@
|
Requires.private: libarchive @pc_crypto@ @pc_libcurl@ @pc_gpgme@
|
||||||
Cflags: -I${includedir} @LFS_CFLAGS@
|
Cflags: -I${includedir} @LFS_CFLAGS@
|
||||||
Libs: -L${libdir} -lalpm
|
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())
|
conf.set('HAVE_LIBCURL', libcurl.found())
|
||||||
|
|
||||||
want_gpgme = get_option('gpgme')
|
want_gpgme = get_option('gpgme')
|
||||||
gpgme_config = find_program('gpgme-config', required : want_gpgme)
|
gpgme = dependency('gpgme',
|
||||||
if not want_gpgme.disabled() and gpgme_config.found()
|
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()
|
gpgme_version = run_command(gpgme_config, '--version').stdout().strip()
|
||||||
|
|
||||||
needed_gpgme_version = '>=1.3.0'
|
needed_gpgme_version = '>=1.3.0'
|
||||||
have = gpgme_version.version_compare(needed_gpgme_version)
|
if 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
|
|
||||||
|
|
||||||
gpgme_libs = [
|
gpgme_libs = [
|
||||||
cc.find_library('gpgme', required : have,
|
cc.find_library('gpgme',
|
||||||
dirs : [get_option('gpgme-libdir')]),
|
dirs : [get_option('gpgme-libdir')]),
|
||||||
cc.find_library('gpg-error', required : have,
|
cc.find_library('gpg-error',
|
||||||
dirs : [get_option('gpgme-libdir')]),
|
dirs : [get_option('gpgme-libdir')]),
|
||||||
cc.find_library('assuan', required : have,
|
cc.find_library('assuan',
|
||||||
dirs : [get_option('gpgme-libdir')]),
|
dirs : [get_option('gpgme-libdir')]),
|
||||||
]
|
]
|
||||||
|
gpgme = declare_dependency(dependencies : gpgme_libs)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
conf.set('HAVE_LIBGPGME', have)
|
conf.set('HAVE_LIBGPGME', gpgme.found())
|
||||||
else
|
if want_gpgme.enabled() and not conf.get('HAVE_LIBGPGME')
|
||||||
gpgme_libs = []
|
error('gpgme @0@ is needed for GPG signature support'.format(needed_gpgme_version))
|
||||||
conf.set('HAVE_LIBGPGME', false)
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
want_crypto = get_option('crypto')
|
want_crypto = get_option('crypto')
|
||||||
|
@ -341,7 +346,7 @@ libalpm_a = static_library(
|
||||||
'alpm',
|
'alpm',
|
||||||
libalpm_sources,
|
libalpm_sources,
|
||||||
include_directories : includes,
|
include_directories : includes,
|
||||||
dependencies : [crypto_provider, libarchive, libcurl] + gpgme_libs,
|
dependencies : [crypto_provider, libarchive, libcurl, gpgme],
|
||||||
link_with : [libcommon],
|
link_with : [libcommon],
|
||||||
install : true)
|
install : true)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue