diff options
author | Sefa Eyeoglu <contact@scrumplex.net> | 2022-05-29 13:08:56 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-29 13:08:56 +0200 |
commit | 4a0b0d873513e3a32d9d37607a56ee1fb95eb0ab (patch) | |
tree | b6bd22ea86d6432180f1dca0fb4719b2d66dd664 /nix/default.nix | |
parent | 7b9f67f4b4e5e095bff3aa0464efb324d1fb8808 (diff) | |
parent | 123d6c72e4308a0194d57f5a910d063bd84941e2 (diff) | |
download | PrismLauncher-4a0b0d873513e3a32d9d37607a56ee1fb95eb0ab.tar.gz PrismLauncher-4a0b0d873513e3a32d9d37607a56ee1fb95eb0ab.tar.bz2 PrismLauncher-4a0b0d873513e3a32d9d37607a56ee1fb95eb0ab.zip |
Merge pull request #653 from muscaln/nix
Diffstat (limited to 'nix/default.nix')
-rw-r--r-- | nix/default.nix | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/nix/default.nix b/nix/default.nix new file mode 100644 index 00000000..cce40e63 --- /dev/null +++ b/nix/default.nix @@ -0,0 +1,84 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, ninja +, jdk8 +, jdk +, zlib +, file +, wrapQtAppsHook +, xorg +, libpulseaudio +, qtbase +, libGL +, msaClientID ? "" + + # flake +, self +, version +, libnbtplusplus +}: + +let + # Libraries required to run Minecraft + libpath = with xorg; lib.makeLibraryPath [ + libX11 + libXext + libXcursor + libXrandr + libXxf86vm + libpulseaudio + libGL + ]; + + # This variable will be passed to Minecraft by PolyMC + gameLibraryPath = libpath + ":/run/opengl-driver/lib"; +in + +stdenv.mkDerivation rec { + pname = "polymc"; + inherit version; + + src = lib.cleanSource self; + + nativeBuildInputs = [ cmake ninja jdk file wrapQtAppsHook ]; + buildInputs = [ qtbase quazip zlib ]; + + dontWrapQtApps = true; + + postUnpack = '' + # Copy libnbtplusplus + rm -rf source/libraries/libnbtplusplus + mkdir source/libraries/libnbtplusplus + cp -a ${libnbtplusplus}/* source/libraries/libnbtplusplus + chmod a+r+w source/libraries/libnbtplusplus/* + ''; + + cmakeFlags = [ + "-GNinja" + "-DENABLE_LTO=on" + "-DLauncher_QT_VERSION_MAJOR=${lib.versions.major qtbase.version}" + ] ++ lib.optionals (msaClientID != "") [ "-DLauncher_MSA_CLIENT_ID=${msaClientID}" ]; + + postInstall = '' + # xorg.xrandr needed for LWJGL [2.9.2, 3) https://github.com/LWJGL/lwjgl/issues/128 + wrapQtApp $out/bin/polymc \ + --set GAME_LIBRARY_PATH ${gameLibraryPath} \ + --prefix POLYMC_JAVA_PATHS : ${jdk}/lib/openjdk/bin/java:${jdk8}/lib/openjdk/bin/java \ + --prefix PATH : ${lib.makeBinPath [ xorg.xrandr ]} + ''; + + meta = with lib; { + homepage = "https://polymc.org/"; + description = "A free, open source launcher for Minecraft"; + longDescription = '' + Allows you to have multiple, separate instances of Minecraft (each with + their own mods, texture packs, saves, etc) and helps you manage them and + their associated options with a simple interface. + ''; + platforms = platforms.unix; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ starcraft66 kloenk ]; + }; +} |