{ lib, stdenvNoCC, fetchFromGitHub, clickgen, python3, themeVariants ? [ ], sizeVariants ? [ ], platformVariants ? [ ], }: let pname = "fuchsia-cursor"; in lib.checkListOfEnum "${pname}: theme variants" [ "Fuchsia" "Fuchsia-Pop" "Fuchsia-Red" ] themeVariants lib.checkListOfEnum "${pname}: size variants" [ "16" "24" "32" "48" ] sizeVariants lib.checkListOfEnum "${pname}: platform variants" [ "x11" "windows" ] platformVariants stdenvNoCC.mkDerivation rec { inherit pname; version = "2.0.0"; src = fetchFromGitHub { owner = "ful1e5"; repo = "fuchsia-cursor"; rev = "v${version}"; hash = "sha256-WnDtUsjRXT7bMppgwU5BIDqphP69DmPzQM/0qXES5tM="; }; nativeBuildInputs = [ clickgen python3.pkgs.attrs ]; installPhase = '' runHook preInstall ${ if themeVariants != [ ] then '' name= ctgen build.toml \ ${ lib.optionalString (themeVariants != [ ]) "-d bitmaps/" + toString themeVariants + " -n " + toString themeVariants } \ ${lib.optionalString (sizeVariants != [ ]) "-s " + toString sizeVariants} \ ${lib.optionalString (platformVariants != [ ]) "-p " + toString platformVariants} \ -o $out/share/icons '' else '' name= ctgen build.toml -d bitmaps/Fuchsia -n Fuchsia \ ${lib.optionalString (sizeVariants != [ ]) "-s " + toString sizeVariants} \ ${lib.optionalString (platformVariants != [ ]) "-p " + toString platformVariants} \ -o $out/share/icons '' } runHook postInstall ''; meta = with lib; { description = "First OpenSource port of FuchsiaOS's cursors for Linux and Windows"; homepage = "https://github.com/ful1e5/fuchsia-cursor"; maintainers = with maintainers; [ d3vil0p3r ]; platforms = platforms.all; license = licenses.gpl3Plus; }; }