1{ lib, stdenv, fetchFromGitLab, meson, ninja, pkg-config, gobject-introspection, vala
2, gtk-doc, docbook_xsl, docbook_xml_dtd_43
3, gtk3, gnome-desktop
4, dbus, xvfb-run, libxml2
5, hicolor-icon-theme
6}:
7
8stdenv.mkDerivation rec {
9 pname = "libhandy";
10 version = "0.0.13";
11
12 outputs = [ "out" "dev" "devdoc" ];
13 outputBin = "dev";
14
15 src = fetchFromGitLab {
16 domain = "source.puri.sm";
17 owner = "Librem5";
18 repo = pname;
19 rev = "v${version}";
20 sha256 = "1y23k623sjkldfrdiwfarpchg5mg58smcy1pkgnwfwca15wm1ra5";
21 };
22
23 nativeBuildInputs = [
24 meson ninja pkg-config gobject-introspection vala libxml2
25 gtk-doc docbook_xsl docbook_xml_dtd_43
26 ];
27 buildInputs = [ gnome-desktop gtk3 libxml2 ];
28 nativeCheckInputs = [ dbus xvfb-run hicolor-icon-theme ];
29
30 mesonFlags = [
31 "-Dgtk_doc=true"
32 "-Dglade_catalog=disabled"
33 "-Dintrospection=enabled"
34 ];
35
36 doCheck = !stdenv.isDarwin;
37
38 checkPhase = ''
39 NO_AT_BRIDGE=1 \
40 XDG_DATA_DIRS="$XDG_DATA_DIRS:${hicolor-icon-theme}/share" \
41 xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
42 --config-file=${dbus}/share/dbus-1/session.conf \
43 meson test --print-errorlogs
44 '';
45
46 meta = with lib; {
47 description = "A library full of GTK widgets for mobile phones";
48 homepage = "https://source.puri.sm/Librem5/libhandy";
49 license = licenses.lgpl21Plus;
50 maintainers = with maintainers; [ ];
51 platforms = platforms.unix;
52 };
53}