nixpkgs/pkgs/development/tools/click/default.nix
OPNA2608 52d1e118b9 ubports-click: Propagate required pkg-config packages properly
In file included from /build/source/src/usermetricsservice/TranslationLocatorImpl.cpp:28:
/nix/store/b78cqp0g2xf8p6gl11pxsdi2dih9v0fa-click-unstable-2023-02-22/include/click-0.4/click.h:10:10: fatal error: json-glib/json-glib.h: No such file or directory

The Requires.private (only apply to static compilation & linking) should be Requires (always apply), that way reverse
dependencies always get the required flags for json-glib etc.
2023-07-05 14:08:32 +02:00

93 lines
1.9 KiB
Nix

{ lib
, fetchFromGitLab
, buildPythonApplication
, autoreconfHook
, debian
, perl
, vala
, pkg-config
, libgee
, json-glib
, properties-cpp
, gobject-introspection
, getopt
, setuptools
, pygobject3
, wrapGAppsHook
}:
buildPythonApplication {
pname = "click";
version = "unstable-2023-02-22";
format = "other";
src = fetchFromGitLab {
owner = "ubports";
repo = "development/core/click";
rev = "aaf2735e8e6cbeaf2e429c70136733513a81718a";
sha256 = "sha256-pNu995/w3tbz15QQVdVYBnWnAoZmqWj1DN/5PZZ0iZw=";
};
postPatch = ''
# These should be proper Requires, using the header needs their headers
substituteInPlace lib/click/click-*.pc.in \
--replace 'Requires.private' 'Requires'
'';
configureFlags = [
"--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
"--with-systemduserunitdir=${placeholder "out"}/lib/systemd/user"
];
preFixup = ''
makeWrapperArgs+=(
--prefix LD_LIBRARY_PATH : "$out/lib"
)
'';
preConfigure = ''
export click_cv_perl_vendorlib=$out/${perl.libPrefix}
export PYTHON_INSTALL_FLAGS="--prefix=$out"
'';
nativeBuildInputs = [
autoreconfHook
perl
pkg-config
gobject-introspection
vala
getopt
wrapGAppsHook
];
# Tests were omitted for time constraint reasons
doCheck = false;
enableParallelBuilding = true;
patches = [
# dbus-test-runner not packaged yet, otherwise build-time dependency even when not running tests
./dbus-test-runner.patch
];
buildInputs = [
libgee
json-glib
properties-cpp
];
propagatedBuildInputs = [
debian
pygobject3
setuptools
];
meta = {
description = "A tool to build click packages. Mainly used for Ubuntu Touch.";
homepage = "https://gitlab.com/ubports/development/core/click";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ ilyakooo0 OPNA2608 ];
platforms = lib.platforms.linux;
};
}