[Pkg-cmake-team] Bug#1077673: debhelper: cmake buildsystem: update pkg-config passing method
Helmut Grohne
helmut at subdivi.de
Wed Jul 31 11:37:39 BST 2024
Source: debhelper
Version: 13.16
Tags: patch
Control: affects -1 + cmake src:qt6-connectivity
User: debian-cross at lists.debian.org
Usertags: ftcbfs
X-Debbugs-Cc: Debian CMake Team <pkg-cmake-team at lists.alioth.debian.org>
cmake changed its way of communicating pkg-config again. The earlier
method of passing -DPKGCONFIG_EXECUTABLE and later
-DPKG_CONFIG_EXECUTABLE are no longer honoured in version 3.30. However,
it now accepts an environment variable PKG_CONFIG. Let's also set that.
I know this is getting ridiculous, but what is our choice?
The attached patch goes slightly beyond and refactors a bit of code
duplication. Hope that's ok.
Helmut
-------------- next part --------------
diff --minimal -Nru debhelper-13.16/debian/changelog debhelper-13.16+nmu1/debian/changelog
--- debhelper-13.16/debian/changelog 2024-06-17 18:00:40.000000000 +0200
+++ debhelper-13.16+nmu1/debian/changelog 2024-07-31 11:42:31.000000000 +0200
@@ -1,3 +1,10 @@
+debhelper (13.16+nmu1) UNRELEASED; urgency=medium
+
+ * Non-maintainer upload.
+ * cmake: Also pass pkg-config via environment (Closes: #-1)
+
+ -- Helmut Grohne <helmut at subdivi.de> Wed, 31 Jul 2024 11:42:31 +0200
+
debhelper (13.16) unstable; urgency=medium
[ Niels Thykier ]
diff --minimal -Nru debhelper-13.16/lib/Debian/Debhelper/Buildsystem/cmake.pm debhelper-13.16+nmu1/lib/Debian/Debhelper/Buildsystem/cmake.pm
--- debhelper-13.16/lib/Debian/Debhelper/Buildsystem/cmake.pm 2024-03-17 08:20:54.000000000 +0100
+++ debhelper-13.16+nmu1/lib/Debian/Debhelper/Buildsystem/cmake.pm 2024-07-31 11:42:31.000000000 +0200
@@ -79,9 +79,15 @@
return $this;
}
+sub _get_pkgconf {
+ my $toolprefix = is_cross_compiling() ? dpkg_architecture_value("DEB_HOST_GNU_TYPE") . "-" : "";
+ return "/usr/bin/" . $toolprefix . "pkg-config";
+}
+
sub _get_cmake_env {
my $update_env = {};
$update_env->{DEB_PYTHON_INSTALL_LAYOUT} = 'deb' unless $ENV{DEB_PYTHON_INSTALL_LAYOUT};
+ $update_env->{PKG_CONFIG} = _get_pkgconf() unless $ENV{PKG_CONFIG};
return $update_env;
}
@@ -129,8 +135,8 @@
if (not $ENV{CXX}) {
push @flags, "-DCMAKE_CXX_COMPILER=" . dpkg_architecture_value("DEB_HOST_GNU_TYPE") . "-g++";
}
- push(@flags, "-DPKG_CONFIG_EXECUTABLE=/usr/bin/" . dpkg_architecture_value("DEB_HOST_GNU_TYPE") . "-pkg-config");
- push(@flags, "-DPKGCONFIG_EXECUTABLE=/usr/bin/" . dpkg_architecture_value("DEB_HOST_GNU_TYPE") . "-pkg-config");
+ push(@flags, "-DPKG_CONFIG_EXECUTABLE=" . _get_pkgconf());
+ push(@flags, "-DPKGCONFIG_EXECUTABLE=" . _get_pkgconf());
push(@flags, "-DQMAKE_EXECUTABLE=/usr/bin/" . dpkg_architecture_value("DEB_HOST_GNU_TYPE") . "-qmake");
}
push(@flags, "-DCMAKE_INSTALL_LIBDIR=lib/" . dpkg_architecture_value("DEB_HOST_MULTIARCH"));
More information about the Pkg-cmake-team
mailing list