lol
1{ lib
2, stdenv
3, fetchFromGitLab
4, gi-docgen
5, meson
6, ninja
7, pkg-config
8, vala
9, gobject-introspection
10, glib
11, cairo
12, sqlite
13, libsoup_3
14, gtk4
15, xvfb-run
16, gnome
17}:
18
19stdenv.mkDerivation rec {
20 pname = "libshumate";
21 version = "1.0.5";
22
23 outputs = [ "out" "dev" "devdoc" ];
24 outputBin = "devdoc"; # demo app
25
26 src = fetchFromGitLab {
27 domain = "gitlab.gnome.org";
28 owner = "GNOME";
29 repo = "libshumate";
30 rev = version;
31 sha256 = "mHfhCKzLfP1BkqM+FiLUlo/I0TCe3G8C0lmO6007pMY=";
32 };
33
34 nativeBuildInputs = [
35 gi-docgen
36 meson
37 ninja
38 pkg-config
39 vala
40 gobject-introspection
41 ];
42
43 buildInputs = [
44 glib
45 cairo
46 sqlite
47 libsoup_3
48 gtk4
49 ];
50
51 nativeCheckInputs = [
52 xvfb-run
53 ];
54
55 mesonFlags = [
56 "-Ddemos=true"
57 ];
58
59 doCheck = !stdenv.isDarwin;
60
61 checkPhase = ''
62 runHook preCheck
63
64 env \
65 HOME="$TMPDIR" \
66 GTK_A11Y=none \
67 xvfb-run meson test --print-errorlogs
68
69 runHook postCheck
70 '';
71
72 postFixup = ''
73 # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
74 moveToOutput share/doc/libshumate-1.0 "$devdoc"
75 '';
76
77 passthru = {
78 updateScript = gnome.updateScript {
79 packageName = pname;
80 versionPolicy = "none";
81 };
82 };
83
84 meta = with lib; {
85 description = "GTK toolkit providing widgets for embedded maps";
86 homepage = "https://gitlab.gnome.org/GNOME/libshumate";
87 license = licenses.lgpl21Plus;
88 maintainers = teams.gnome.members;
89 platforms = platforms.unix;
90 };
91}