{ cmake, fetchFromGitHub, jdk, makeDesktopItem, ninja, qtbase, stdenv, wrapQtAppsHook, zlib, }: stdenv.mkDerivation rec { pname = "UltimMC"; version = "git"; src = fetchFromGitHub { owner = "UltimMC"; repo = "Launcher"; rev = "6bfa07e728865d8d31a43ef5231b2461d55fc4b3"; fetchSubmodules = true; hash = "sha256-gMEjy1jM/T7Un4FDNbAd9AAdVUOHRfL+arhahHPCBFo="; }; nativeBuildInputs = [ cmake jdk ninja wrapQtAppsHook ]; buildInputs = [ qtbase zlib ]; postPatch = '' substituteInPlace CMakeLists.txt \ --replace 'LIBRARY_DEST_DIR "bin"' 'LIBRARY_DEST_DIR "lib"' \ --replace 'JARS_DEST_DIR "bin/jars"' 'JARS_DEST_DIR "share/${pname}/jar"' substituteInPlace launcher/Application.cpp \ --replace '"jars"' '"../share/${pname}/jar"'; ''; desktopItem = makeDesktopItem { name = pname; exec = "DevLauncher"; icon = pname; desktopName = pname; genericName = "Custom Minecraft launcher"; categories = ["Game"]; }; dontWrapQtApps = true; postInstall = '' rm $out/DevLauncher install -Dm644 \ ${desktopItem}/share/applications/${pname}.desktop \ $out/share/applications/${pname}.desktop install -Dm644 \ $src/notsecrets/logo.svg \ $out/share/icons/hicolor/scalable/apps/${pname}.svg ''; postFixup = '' wrapProgram $out/bin/DevLauncher \ --add-flags "--dir \''${XDG_DATA_HOME:-~/.local/share}/${pname}" \ "''${qtWrapperArgs[@]}" ''; }