build: Provide gpgme.pc, generated by configure.

* configure.ac: Generate src/gpgme.pc.
* src/Makefile.am (pkgconfigdir, pkgconfig_DATA): New.
(EXTRA_DIST): Add gpgme.pc.in.
* src/gpgme.pc.in: New.
* src/gpgme-config.in: Use variables.

--

Some usages of gpgme-config is not compatible to pkg-config style;
The --glib option and --thread option which affect the output
by --cflags or --libs are not supported by gpgme.pc.

gpgme-config's embedding information for gpg-error and libassuan at
the build time of gpgme is considered inflexible than pkg-config
style.  It is now handled by dependency of gpgme.pc (Requires field).

To use gpgme.pc, newer libgpg-error (>= 1.33) and libassuan (>= 2.5.3)
are required, which provide gpg-error.pc and libassuan.pc respectively.

Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
This commit is contained in:
NIIBE Yutaka 2018-11-12 09:03:49 +09:00
parent 2557d0ae6f
commit f3e6052189
4 changed files with 28 additions and 6 deletions

View File

@ -855,6 +855,7 @@ AC_CONFIG_FILES(Makefile src/Makefile
tests/opassuan/Makefile tests/opassuan/Makefile
doc/Makefile doc/Makefile
src/versioninfo.rc src/versioninfo.rc
src/gpgme.pc
src/gpgme.h) src/gpgme.h)
AC_CONFIG_FILES(src/gpgme-config, chmod +x src/gpgme-config) AC_CONFIG_FILES(src/gpgme-config, chmod +x src/gpgme-config)
AC_CONFIG_FILES(lang/cpp/Makefile lang/cpp/src/Makefile) AC_CONFIG_FILES(lang/cpp/Makefile lang/cpp/src/Makefile)

View File

@ -18,8 +18,11 @@
## Process this file with automake to produce Makefile.in ## Process this file with automake to produce Makefile.in
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = gpgme.pc
EXTRA_DIST = gpgme-config.in gpgme.m4 libgpgme.vers ChangeLog-2011 \ EXTRA_DIST = gpgme-config.in gpgme.m4 libgpgme.vers ChangeLog-2011 \
gpgme.h.in versioninfo.rc.in gpgme.def gpgme.h.in versioninfo.rc.in gpgme.def gpgme.pc.in
bin_SCRIPTS = gpgme-config bin_SCRIPTS = gpgme-config
m4datadir = $(datadir)/aclocal m4datadir = $(datadir)/aclocal

View File

@ -9,8 +9,11 @@
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
prefix=@prefix@ prefix="@prefix@"
exec_prefix=@exec_prefix@ exec_prefix="@exec_prefix@"
version="@PACKAGE_VERSION@"
api_version="@GPGME_CONFIG_API_VERSION@"
my_host="@GPGME_CONFIG_HOST@"
# Make sure that no weird locale setting messes up our sed regexps etc. # Make sure that no weird locale setting messes up our sed regexps etc.
LC_COLLATE=C LC_COLLATE=C
@ -96,15 +99,15 @@ while test $# -gt 0; do
with_glib=yes with_glib=yes
;; ;;
--version) --version)
echo "@VERSION@" echo "$version"
exit 0 exit 0
;; ;;
--api-version) --api-version)
echo "@GPGME_CONFIG_API_VERSION@" echo "$api_version"
exit 0 exit 0
;; ;;
--host) --host)
echo "@GPGME_CONFIG_HOST@" echo "$my_host"
exit 0 exit 0
;; ;;
--cflags) --cflags)

15
src/gpgme.pc.in Normal file
View File

@ -0,0 +1,15 @@
prefix=@prefix@
exec_prefix=@exec_prefix@
includedir=@includedir@
libdir=@libdir@
host=@GPGME_CONFIG_HOST@
api_version=@GPGME_CONFIG_API_VERSION@
avail_lang=c @GPGME_CONFIG_AVAIL_LANG@
Name: gpgme
Description: GnuPG Made Easy to access GnuPG
Requires: gpg-error, libassuan
Version: @PACKAGE_VERSION@
Cflags: @GPGME_CONFIG_CFLAGS@
Libs: @GPGME_CONFIG_LIBS@
URL: https://www.gnupg.org/software/gpgme/index.html