biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / kde / plasma / breeze-plymouth / default.nix
blob97abe3948ac9d70b627a869c0e67b0930bea3809
2   lib,
3   mkKdeDerivation,
4   pkg-config,
5   plymouth,
6   imagemagick,
7   netpbm,
8   perl,
9   logoName ? null,
10   logoFile ? null,
11   osName ? null,
12   osVersion ? null,
13   topColor ? "black",
14   bottomColor ? "black",
16 let
17   validColors = [
18     "black"
19     "cardboard_grey"
20     "charcoal_grey"
21     "icon_blue"
22     "paper_white"
23     "plasma_blue"
24     "neon_blue"
25     "neon_green"
26   ];
27   resolvedLogoName =
28     if (logoFile != null && logoName == null) then
29       lib.strings.removeSuffix ".png" (baseNameOf (toString logoFile))
30     else
31       logoName;
33 assert lib.asserts.assertOneOf "topColor" topColor validColors;
34 assert lib.asserts.assertOneOf "bottomColor" bottomColor validColors;
35 mkKdeDerivation {
36   pname = "breeze-plymouth";
38   # FIXME(later): discuss with upstream
39   patches = [ ./install-paths.patch ];
41   extraNativeBuildInputs =
42     [ pkg-config ]
43     ++ lib.optionals (logoFile != null) [
44       imagemagick
45       netpbm
46       perl
47     ];
48   extraBuildInputs = [ plymouth ];
50   extraCmakeFlags =
51     [ ]
52     ++ lib.optional (osName != null) "-DDISTRO_NAME=${osName}"
53     ++ lib.optional (osVersion != null) "-DDISTRO_VERSION=${osVersion}"
54     ++ lib.optional (logoName != null) "-DDISTRO_LOGO=${logoName}"
55     ++ lib.optional (topColor != null) "-DBACKGROUND_TOP_COLOR=${topColor}"
56     ++ lib.optional (bottomColor != null) "-DBACKGROUND_BOTTOM_COLOR=${bottomColor}";
58   postPatch =
59     ''
60       substituteInPlace cmake/FindPlymouth.cmake --subst-var out
61     ''
62     + lib.optionalString (logoFile != null) ''
63       cp ${logoFile} breeze/images/${resolvedLogoName}.logo.png
65       # conversion for 16bit taken from the breeze-plymouth readme
66       convert ${logoFile} -alpha Background -background "#000000" -fill "#000000" -flatten tmp.png
67       pngtopnm tmp.png | pnmquant 16 | pnmtopng > breeze/images/16bit/${resolvedLogoName}.logo.png
68     '';