mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-01-04 03:53:56 +00:00
70 lines
1.8 KiB
Nix
70 lines
1.8 KiB
Nix
{
|
|
lib,
|
|
mkKdeDerivation,
|
|
pkg-config,
|
|
plymouth,
|
|
imagemagick,
|
|
netpbm,
|
|
perl,
|
|
logoName ? null,
|
|
logoFile ? null,
|
|
osName ? null,
|
|
osVersion ? null,
|
|
topColor ? "black",
|
|
bottomColor ? "black",
|
|
}:
|
|
let
|
|
validColors = [
|
|
"black"
|
|
"cardboard_grey"
|
|
"charcoal_grey"
|
|
"icon_blue"
|
|
"paper_white"
|
|
"plasma_blue"
|
|
"neon_blue"
|
|
"neon_green"
|
|
];
|
|
resolvedLogoName =
|
|
if (logoFile != null && logoName == null) then
|
|
lib.strings.removeSuffix ".png" (baseNameOf (toString logoFile))
|
|
else
|
|
logoName;
|
|
in
|
|
assert lib.asserts.assertOneOf "topColor" topColor validColors;
|
|
assert lib.asserts.assertOneOf "bottomColor" bottomColor validColors;
|
|
mkKdeDerivation {
|
|
pname = "breeze-plymouth";
|
|
|
|
# FIXME(later): discuss with upstream
|
|
patches = [ ./install-paths.patch ];
|
|
|
|
extraNativeBuildInputs =
|
|
[ pkg-config ]
|
|
++ lib.optionals (logoFile != null) [
|
|
imagemagick
|
|
netpbm
|
|
perl
|
|
];
|
|
extraBuildInputs = [ plymouth ];
|
|
|
|
extraCmakeFlags =
|
|
[ ]
|
|
++ lib.optional (osName != null) "-DDISTRO_NAME=${osName}"
|
|
++ lib.optional (osVersion != null) "-DDISTRO_VERSION=${osVersion}"
|
|
++ lib.optional (logoName != null) "-DDISTRO_LOGO=${logoName}"
|
|
++ lib.optional (topColor != null) "-DBACKGROUND_TOP_COLOR=${topColor}"
|
|
++ lib.optional (bottomColor != null) "-DBACKGROUND_BOTTOM_COLOR=${bottomColor}";
|
|
|
|
postPatch =
|
|
''
|
|
substituteInPlace cmake/FindPlymouth.cmake --subst-var out
|
|
''
|
|
+ lib.optionalString (logoFile != null) ''
|
|
cp ${logoFile} breeze/images/${resolvedLogoName}.logo.png
|
|
|
|
# conversion for 16bit taken from the breeze-plymouth readme
|
|
convert ${logoFile} -alpha Background -background "#000000" -fill "#000000" -flatten tmp.png
|
|
pngtopnm tmp.png | pnmquant 16 | pnmtopng > breeze/images/16bit/${resolvedLogoName}.logo.png
|
|
'';
|
|
}
|