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
14, gtk4
15, xvfb-run
16, unstableGitUpdater
17}:
18
19stdenv.mkDerivation rec {
20 pname = "libshumate";
21 version = "unstable-2021-10-06";
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 = "7a0a03f299881e8faaac7d904cc47b74795ae5dd";
31 sha256 = "df8ZHn/wmkzaYH0L3E6ULUtqxqU71EqL0jSgKhWqlT8=";
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
48 gtk4
49 ];
50
51 checkInputs = [
52 xvfb-run
53 ];
54
55 mesonFlags = [
56 "-Ddemos=true"
57 ];
58
59 doCheck = true;
60
61 checkPhase = ''
62 runHook preCheck
63
64 HOME=$TMPDIR xvfb-run meson test --print-errorlogs
65
66 runHook postCheck
67 '';
68
69 postFixup = ''
70 # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
71 moveToOutput share/doc/libshumate-0.0 "$devdoc"
72 '';
73
74 passthru.updateScript = unstableGitUpdater {
75 url = meta.homepage;
76 };
77
78 meta = with lib; {
79 description = "GTK toolkit providing widgets for embedded maps";
80 homepage = "https://gitlab.gnome.org/GNOME/libshumate";
81 license = licenses.lgpl21Plus;
82 maintainers = teams.gnome.members;
83 platforms = platforms.linux;
84 };
85}