On Tue, Nov 07, 2017 at 11:20:50PM +0100, Corentin Noël wrote: > Here is a patch working with current master, It's now fully working. It > contains a test to ensure that it works, I tested it with autopkgtest.
> From 44fa7251911378bb0ca16a23024b7f7ede5a8f84 Mon Sep 17 00:00:00 2001 > From: =?UTF-8?q?Corentin=20No=C3=ABl?= <coren...@elementary.io> > Date: Tue, 7 Nov 2017 20:38:13 +0100 > Subject: [PATCH] Enable PkgConfig on the apt-pkg and apt-inst libraries > > --- > apt-inst/CMakeLists.txt | 3 +++ > apt-inst/apt-inst.pc.in | 11 +++++++++++ > apt-pkg/CMakeLists.txt | 3 +++ > apt-pkg/apt-pkg.pc.in | 10 ++++++++++ > debian/libapt-pkg-dev.install | 1 + > debian/tests/control | 5 +++-- > debian/tests/pkg-config-test | 22 ++++++++++++++++++++++ > 7 files changed, 53 insertions(+), 2 deletions(-) > create mode 100644 apt-inst/apt-inst.pc.in > create mode 100644 apt-pkg/apt-pkg.pc.in > create mode 100644 debian/tests/pkg-config-test > > diff --git a/apt-inst/CMakeLists.txt b/apt-inst/CMakeLists.txt > index 31da115e4..063b40318 100644 > --- a/apt-inst/CMakeLists.txt > +++ b/apt-inst/CMakeLists.txt > @@ -12,6 +12,8 @@ set(APT_INST_MAJOR ${MAJOR} PARENT_SCOPE) > file(GLOB_RECURSE library "*.cc") > file(GLOB_RECURSE headers "*.h") > > +configure_file(apt-inst.pc.in ${CMAKE_CURRENT_BINARY_DIR}/apt-inst.pc @ONLY) > + > # Create a library using the C++ files > add_library(apt-inst SHARED ${library}) > > @@ -25,4 +27,5 @@ add_version_script(apt-inst) > # Install the library and the headers > install(TARGETS apt-inst LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) > install(FILES ${headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/apt-pkg) > +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/apt-inst.pc DESTINATION > ${CMAKE_INSTALL_LIBDIR}/pkgconfig) > flatify(${PROJECT_BINARY_DIR}/include/apt-pkg/ "${headers}") > diff --git a/apt-inst/apt-inst.pc.in b/apt-inst/apt-inst.pc.in > new file mode 100644 > index 000000000..c752f4657 > --- /dev/null > +++ b/apt-inst/apt-inst.pc.in > @@ -0,0 +1,11 @@ > +prefix=@CMAKE_INSTALL_PREFIX@ > +exec_prefix=${prefix} > +libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ > +includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ That's wrong. If I define CMAKE_INSTALL_LIBDIR to /foo, and prefix is /usr, you just set libdir to /usr//foo instead of /foo. Generally, we must not use CMAKE_INSTALL_PREFIX, and only use CMAKE_INSTALL_FULL_LIBDIR, CMAKE_INSTALL_FULL_INCLUDEDIR, and thus only define libdir and includedir, not prefix or exec_prefix. > + > +Name: apt-inst > +Description: deb package format runtime library > +Version: @MAJOR@.@MINOR@ > +Libs: -L${libdir} -lapt-inst > +Cflags: -I${includedir}/apt-pkg The /apt-pkg should not be there. > diff --git a/apt-pkg/apt-pkg.pc.in b/apt-pkg/apt-pkg.pc.in > new file mode 100644 > index 000000000..97c90ce5e > --- /dev/null > +++ b/apt-pkg/apt-pkg.pc.in > @@ -0,0 +1,10 @@ > +prefix=@CMAKE_INSTALL_PREFIX@ > +exec_prefix=${prefix} > +libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ > +includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ as above > + > +Name: apt-pkg > +Description: package management runtime library > +Version: @MAJOR@.@MINOR@ > +Libs: -L${libdir} -lapt-pkg -pthread > +Cflags: -I${includedir}/apt-pkg as above -- Debian Developer - deb.li/jak | jak-linux.org - free software dev Ubuntu Core Developer de, en speaker