diff options
Diffstat (limited to 'pkgs/games/multimc/default.nix')
-rw-r--r-- | pkgs/games/multimc/default.nix | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/pkgs/games/multimc/default.nix b/pkgs/games/multimc/default.nix new file mode 100644 index 000000000000..c07a76d397d3 --- /dev/null +++ b/pkgs/games/multimc/default.nix @@ -0,0 +1,55 @@ +{ stdenv, fetchFromGitHub, cmake, qt5Full, jdk7, zlib, file, makeWrapper, xorg, libpulseaudio }: + +let + libnbt = fetchFromGitHub { + owner = "MultiMC"; + repo = "libnbtplusplus"; + rev = "5d0ffb50a526173ce58ae57136bf5d79a7e1920d"; + sha256 = "05hnwfb77rmm9ba7n96g4g1sgwqqcmplvbcafsl76yxr6ysgw5jg"; + }; +in +stdenv.mkDerivation { + name = "multimc-5"; + src = fetchFromGitHub { + owner = "MultiMC"; + repo = "MultiMC5"; + rev = "895d8ab4699f1b50bf03532c967a91f5ecb62a50"; + sha256 = "179vc1iv57fx4g4h1wy8yvyvdm671jnvp6zi8pcr1n6azqhwklds"; + }; + buildInputs = [ cmake qt5Full jdk7 zlib file makeWrapper ]; + + libpath = with xorg; [ libX11 libXext libXcursor libXrandr libXxf86vm libpulseaudio ]; + postUnpack = '' + rmdir $sourceRoot/depends/libnbtplusplus + cp -r ${libnbt} $sourceRoot/depends/libnbtplusplus + chmod 755 -R $sourceRoot/depends/libnbtplusplus + ''; + + patches = [ ./multimc.patch ]; + + enableParallelBuilding = true; + + # the install rule tries to bundle ALL deps into the output for portability + installPhase = '' + RESULT=/run/opengl-driver/lib/ + for x in $libpath; do + RESULT=$x/lib/:$RESULT + done + + mkdir -pv $out/bin/jars $out/lib + cp -v MultiMC $out/bin/ + cp -v jars/*.jar $out/bin/jars/ + cp -v librainbow.so libnbt++.so libMultiMC_logic.so $out/lib + wrapProgram $out/bin/MultiMC --add-flags "-d \$HOME/.multimc/" --set GAME_LIBRARY_PATH $RESULT --prefix PATH : ${jdk7}/bin/ + ''; + + meta = { + homepage = https://multimc.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 = stdenv.lib.platforms.linux; + license = stdenv.lib.licenses.lgpl21Plus; + }; +} |