Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / libraries / qtstyleplugin-kvantum / default.nix
blob64f3b81edde980f884026b2da33d62ea4de4d005
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , fetchpatch
5 , qmake
6 , qtbase
7 , qtsvg
8 , qtx11extras ? null
9 , kwindowsystem ? null
10 , qtwayland
11 , libX11
12 , libXext
13 , qttools
14 , wrapQtAppsHook
15 , gitUpdater
17 , qt5Kvantum ? null
19 let
20   isQt6 = lib.versionAtLeast qtbase.version "6";
22 stdenv.mkDerivation rec {
23   pname = "qtstyleplugin-kvantum${lib.optionalString isQt6 "6"}";
24   version = "1.0.10";
26   src = fetchFromGitHub {
27     owner = "tsujan";
28     repo = "Kvantum";
29     rev = "V${version}";
30     sha256 = "48Blio8qHLmXSKG0c1tphXSfiwQXs0Xqwxe187nM3Ro=";
31   };
33   nativeBuildInputs = [
34     qmake
35     qttools
36     wrapQtAppsHook
37   ];
39   buildInputs = [
40     qtbase
41     qtsvg
42     libX11
43     libXext
44   ] ++ lib.optionals (!isQt6) [ qtx11extras kwindowsystem ]
45     ++ lib.optional isQt6 qtwayland;
47   sourceRoot = "${src.name}/Kvantum";
49   patches = [
50     (fetchpatch {
51       # add xdg dirs support
52       url = "https://github.com/tsujan/Kvantum/commit/01989083f9ee75a013c2654e760efd0a1dea4a68.patch";
53       hash = "sha256-HPx+p4Iek/Me78olty1fA0dUNceK7bwOlTYIcQu8ycc=";
54       stripLen = 1;
55     })
56   ];
58   postPatch = ''
59     # Fix plugin dir
60     substituteInPlace style/style.pro \
61       --replace "\$\$[QT_INSTALL_PLUGINS]" "$out/$qtPluginPrefix"
62   '';
64   postInstall = lib.optionalString isQt6 ''
65     # make default Kvantum themes available for Qt 6 apps
66     mkdir -p "$out/share"
67     ln -s "${qt5Kvantum}/share/Kvantum" "$out/share/Kvantum"
68   '';
70   passthru.updateScript = gitUpdater {
71     rev-prefix = "V";
72   };
74   meta = with lib; {
75     description = "SVG-based Qt5 theme engine plus a config tool and extra themes";
76     homepage = "https://github.com/tsujan/Kvantum";
77     license = licenses.gpl3Plus;
78     platforms = platforms.linux;
79     maintainers = with maintainers; [ romildo Scrumplex ];
80   };