diff options
author | Alyssa Ross <hi@alyssa.is> | 2020-04-01 15:50:50 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2020-04-01 15:50:50 +0000 |
commit | 75eafe97f7df0d653bec67f3962214d7c357831f (patch) | |
tree | 09f2cc901e0e637876cbb78d192dfe2fcfef8156 /nixpkgs/pkgs/games/mindustry | |
parent | a53b121bf4331497da63df3b1b7f1a7897dad146 (diff) | |
parent | a2e06fc3423c4be53181b15c28dfbe0bcf67dd73 (diff) | |
download | nixlib-75eafe97f7df0d653bec67f3962214d7c357831f.tar nixlib-75eafe97f7df0d653bec67f3962214d7c357831f.tar.gz nixlib-75eafe97f7df0d653bec67f3962214d7c357831f.tar.bz2 nixlib-75eafe97f7df0d653bec67f3962214d7c357831f.tar.lz nixlib-75eafe97f7df0d653bec67f3962214d7c357831f.tar.xz nixlib-75eafe97f7df0d653bec67f3962214d7c357831f.tar.zst nixlib-75eafe97f7df0d653bec67f3962214d7c357831f.zip |
Merge commit 'a2e06fc3423c4be53181b15c28dfbe0bcf67dd73'
Diffstat (limited to 'nixpkgs/pkgs/games/mindustry')
-rw-r--r-- | nixpkgs/pkgs/games/mindustry/default.nix | 53 |
1 files changed, 38 insertions, 15 deletions
diff --git a/nixpkgs/pkgs/games/mindustry/default.nix b/nixpkgs/pkgs/games/mindustry/default.nix index 6e6d6b56014f..3d4f52f2c704 100644 --- a/nixpkgs/pkgs/games/mindustry/default.nix +++ b/nixpkgs/pkgs/games/mindustry/default.nix @@ -12,6 +12,8 @@ # any build is allowed, so this parameter acts as a simple whitelist. # Takes the package version and returns the build version. , makeBuildVersion ? (v: v) +, enableClient ? true +, enableServer ? true }: let @@ -52,6 +54,9 @@ let pname = "${pname}-deps"; inherit version src postPatch; nativeBuildInputs = [ gradle_5 perl ]; + # Here we build both the server and the client so we only have to specify + # one hash for 'deps'. Deps can be garbage collected after the build, + # so this is not really an issue. buildPhase = '' export GRADLE_USER_HOME=$(mktemp -d) gradle --no-daemon desktop:dist -Pbuildversion=${buildVersion} @@ -68,31 +73,49 @@ let outputHash = "16k058fw9yk89adx8j1708ynfri5yizmmvh49prls9slw4hipffb"; }; -in stdenv.mkDerivation rec { - inherit pname version src postPatch; - - nativeBuildInputs = [ gradle_5 makeWrapper ]; - - buildPhase = '' - export GRADLE_USER_HOME=$(mktemp -d) - # point to offline repo - sed -ie "s#mavenLocal()#mavenLocal(); maven { url '${deps}' }#g" build.gradle + # Separate commands for building and installing the server and the client + buildClient = '' gradle --offline --no-daemon desktop:dist -Pbuildversion=${buildVersion} + ''; + buildServer = '' gradle --offline --no-daemon server:dist -Pbuildversion=${buildVersion} ''; - - installPhase = '' + installClient = '' install -Dm644 desktop/build/libs/Mindustry.jar $out/share/mindustry.jar - install -Dm644 server/build/libs/server-release.jar $out/share/mindustry-server.jar - mkdir $out/bin + mkdir -p $out/bin makeWrapper ${jre}/bin/java $out/bin/mindustry \ --prefix LD_LIBRARY_PATH : ${libpulseaudio}/lib \ --add-flags "-jar $out/share/mindustry.jar" - makeWrapper ${jre}/bin/java $out/bin/mindustry-server \ - --add-flags "-jar $out/share/mindustry-server.jar" install -Dm644 core/assets/icons/icon_64.png $out/share/icons/hicolor/64x64/apps/mindustry.png install -Dm644 ${desktopItem}/share/applications/Mindustry.desktop $out/share/applications/Mindustry.desktop ''; + installServer = '' + install -Dm644 server/build/libs/server-release.jar $out/share/mindustry-server.jar + mkdir -p $out/bin + makeWrapper ${jre}/bin/java $out/bin/mindustry-server \ + --add-flags "-jar $out/share/mindustry-server.jar" + ''; + +in +assert stdenv.lib.assertMsg (enableClient || enableServer) + "mindustry: at least one of 'enableClient' and 'enableServer' must be true"; +stdenv.mkDerivation rec { + inherit pname version src postPatch; + + nativeBuildInputs = [ gradle_5 makeWrapper ]; + + buildPhase = with stdenv.lib; '' + export GRADLE_USER_HOME=$(mktemp -d) + # point to offline repo + sed -ie "s#mavenLocal()#mavenLocal(); maven { url '${deps}' }#g" build.gradle + ${optionalString enableClient buildClient} + ${optionalString enableServer buildServer} + ''; + + installPhase = with stdenv.lib; '' + ${optionalString enableClient installClient} + ${optionalString enableServer installServer} + ''; meta = with stdenv.lib; { homepage = "https://mindustrygame.github.io/"; |