diff options
author | Francesco Gazzetta <fgaz@fgaz.me> | 2020-11-21 15:57:21 +0100 |
---|---|---|
committer | Francesco Gazzetta <fgaz@fgaz.me> | 2020-11-21 16:24:43 +0100 |
commit | 0667d730bf94c0e51a6f8aa3ac4f667583ac49b7 (patch) | |
tree | ea52ececd8d4625e3829270c9f7ca9d0ba46d546 /pkgs/games/domination | |
parent | 7798a4e19cc843874e6329e0a980de7515945923 (diff) |
domination: init at 1.2.3
Diffstat (limited to 'pkgs/games/domination')
-rw-r--r-- | pkgs/games/domination/default.nix | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/pkgs/games/domination/default.nix b/pkgs/games/domination/default.nix new file mode 100644 index 000000000000..37c7d37741b8 --- /dev/null +++ b/pkgs/games/domination/default.nix @@ -0,0 +1,93 @@ +{ stdenv +, fetchsvn +# jdk8 is needed for building, but the game runs on newer jres as well +, jdk8 +, jre +, ant +, makeWrapper +, makeDesktopItem +}: + +let + desktopItem = makeDesktopItem { + type = "Application"; + name = "Domination"; + desktopName = "Domination"; + exec = "domination"; + icon = "domination"; + }; + editorDesktopItem = makeDesktopItem { + type = "Application"; + name = "Domination Map Editor"; + desktopName = "Domination Map Editor"; + exec = "domination-map-editor"; + icon = "domination"; + }; + +in stdenv.mkDerivation { + pname = "domination"; + version = "1.2.3"; + + # The .zip releases do not contain the build.xml file + src = fetchsvn { + url = "https://svn.code.sf.net/p/domination/code/Domination"; + # There are no tags in the repository. + # Look for commits like "new version x.y.z info on website" + # or "website update for x.y.z". + rev = "1964"; + sha256 = "0718gns8d69a1dfq3ywc9kddl1khnrmxqyal7brckbjgay8dq42f"; + }; + + nativeBuildInputs = [ + jdk8 + ant + makeWrapper + ]; + + buildPhase = "ant"; + + installPhase = '' + # Remove unnecessary files and launchers (they'd need to be wrapped anyway) + rm -r \ + build/game/src.zip \ + build/game/*.sh \ + build/game/*.cmd \ + build/game/*.exe \ + build/game/*.app + + mkdir -p $out/share/domination + cp -r build/game/* $out/share/domination/ + + # Reimplement the two launchers mentioned in Unix_shortcutSpec.xml with makeWrapper + mkdir -p $out/bin + makeWrapper ${jre}/bin/java $out/bin/domination \ + --run "cd $out/share/domination" \ + --add-flags "-jar $out/share/domination/Domination.jar" + makeWrapper ${jre}/bin/java $out/bin/domination-map-editor \ + --run "cd $out/share/domination" \ + --add-flags "-cp $out/share/domination/Domination.jar net.yura.domination.ui.swinggui.SwingGUIFrame" + + install -Dm644 \ + ${desktopItem}/share/applications/Domination.desktop \ + $out/share/applications/Domination.desktop + install -Dm644 \ + "${editorDesktopItem}/share/applications/Domination Map Editor.desktop" \ + "$out/share/applications/Domination Map Editor.desktop" + install -Dm644 build/game/resources/icon.png $out/share/pixmaps/domination.png + ''; + + meta = with stdenv.lib; { + homepage = "http://domination.sourceforge.net/"; + downloadPage = "http://domination.sourceforge.net/download.shtml"; + description = "A game that is a bit like the board game Risk or RisiKo"; + longDescription = '' + Domination is a game that is a bit like the well known board game of Risk + or RisiKo. It has many game options and includes many maps. + It includes a map editor, a simple map format, multiplayer network play, + single player, hotseat, 5 user interfaces and many more features. + ''; + license = licenses.gpl3; + maintainers = with maintainers; [ fgaz ]; + platforms = platforms.all; + }; +} |