1{ stdenv
2, lib
3, fetchurl
4, meson
5, ninja
6, pkg-config
7, gobject-introspection
8, vala
9, gi-docgen
10, glib
11, gtk4
12, libadwaita
13, gnome
14}:
15
16stdenv.mkDerivation rec {
17 pname = "libpanel";
18 version = "1.2.0";
19
20 outputs = [ "out" "dev" "devdoc" ];
21 outputBin = "dev";
22
23 src = fetchurl {
24 url = "mirror://gnome/sources/libpanel/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
25 sha256 = "2QVbu6uWJfP1zm0f1xMutuo0proHqH6ZOJAfuLMVgeI=";
26 };
27
28 nativeBuildInputs = [
29 meson
30 ninja
31 pkg-config
32 gobject-introspection
33 vala
34 gi-docgen
35 ];
36
37 buildInputs = [
38 glib
39 gtk4
40 libadwaita
41 ];
42
43 mesonFlags = [
44 "-Dinstall-examples=true"
45 ];
46
47 postFixup = ''
48 # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
49 moveToOutput "share/doc" "$devdoc"
50 '';
51
52 passthru = {
53 updateScript = gnome.updateScript {
54 packageName = pname;
55 };
56 };
57
58 meta = with lib; {
59 description = "Dock/panel library for GTK 4";
60 homepage = "https://gitlab.gnome.org/GNOME/libpanel";
61 license = licenses.lgpl21Plus;
62 maintainers = teams.gnome.members;
63 platforms = platforms.unix;
64 };
65}