{ cmake, fetchFromGitHub, jdk, makeDesktopItem, qtbase, stdenv, wrapQtAppsHook, zlib, }: stdenv.mkDerivation rec { pname = "UltimMC"; version = "unstable-2022-06-09"; src = fetchFromGitHub { owner = "UltimMC"; repo = "Launcher"; rev = "b7c9b27ed6fb047da7fab5e4cee99b298b9e9811"; hash = "sha256-xmkflvtOSLMTuzAKovgOLjgpbR8j53bkGV3QZRsQItw="; fetchSubmodules = true; }; nativeBuildInputs = [cmake jdk 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"'; ''; cmakeFlags = ["-DCMAKE_BUILD_TYPE=Release"]; desktopItem = makeDesktopItem { name = pname; exec = pname; icon = pname; desktopName = pname; genericName = "Custom Minecraft launcher"; categories = ["Game"]; }; dontWrapQtApps = true; postInstall = '' rm $out/${pname} wrapProgram $out/bin/${pname} \ --add-flags "--dir \''${XDG_DATA_HOME:-~/.local/share}/${pname}" \ "''${qtWrapperArgs[@]}" 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 ''; }