diff options
author | Francesco Gazzetta <fgaz@fgaz.me> | 2020-01-26 16:14:02 +0100 |
---|---|---|
committer | Milan <me@pbb.lc> | 2020-01-30 14:19:55 +0100 |
commit | 770756e74ca4a1f0915ebaa83984bd3275eba4fd (patch) | |
tree | 34cddd54a13b3578af8cfd1f40d619516f50edd9 /pkgs | |
parent | 32718c9992f5b49fbe6fb81bfc3dd3cc8316a3a8 (diff) | |
download | nixlib-770756e74ca4a1f0915ebaa83984bd3275eba4fd.tar nixlib-770756e74ca4a1f0915ebaa83984bd3275eba4fd.tar.gz nixlib-770756e74ca4a1f0915ebaa83984bd3275eba4fd.tar.bz2 nixlib-770756e74ca4a1f0915ebaa83984bd3275eba4fd.tar.lz nixlib-770756e74ca4a1f0915ebaa83984bd3275eba4fd.tar.xz nixlib-770756e74ca4a1f0915ebaa83984bd3275eba4fd.tar.zst nixlib-770756e74ca4a1f0915ebaa83984bd3275eba4fd.zip |
mindustry,mindustry-server: make it possible to choose what to build
So that headless servers do not need to pull in the pulseaudio dependency
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/games/mindustry/default.nix | 53 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 5 |
2 files changed, 43 insertions, 15 deletions
diff --git a/pkgs/games/mindustry/default.nix b/pkgs/games/mindustry/default.nix index 6e6d6b56014f..3d4f52f2c704 100644 --- a/pkgs/games/mindustry/default.nix +++ b/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/"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c0dcc5a03c9f..d60fa665e0db 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -23133,6 +23133,11 @@ in mindustry = callPackage ../games/mindustry { }; + mindustry-server = callPackage ../games/mindustry { + enableClient = false; + enableServer = true; + }; + minecraft = callPackage ../games/minecraft { }; minecraft-server = callPackage ../games/minecraft-server { }; |