pytrainer: unpin python 3.10
[NixPkgs.git] / pkgs / games / graphwar / default.nix
blobac177281fa07bf4fd353e7f586301d34c3f0ac85
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , copyDesktopItems
5 , jdk
6 , makeDesktopItem
7 , makeWrapper
8 }:
10 stdenv.mkDerivation rec {
11   pname = "graphwar";
12   version = "1.0.0";
14   src = fetchFromGitHub {
15     owner = "catabriga";
16     repo = "graphwar";
17     rev = version;
18     sha256 = "sha256-t3Y576dXWp2Mj6OSQN5cm9FuNBWNqKq6xxkVRbjIBgE=";
19   };
21   nativeBuildInputs = [ copyDesktopItems makeWrapper ];
22   buildInputs = [ jdk ];
24   buildPhase = ''
25     runHook preBuild
27     mkdir -p out/
28     javac -d out/ -sourcepath src/ -classpath out/ -encoding utf8 src/**/*.java
30     runHook postBuild
31   '';
33   installPhase = ''
34     runHook preInstall
36     mkdir -p $out/lib/
37     mv out $out/lib/graphwar
38     cp -r rsc $out/lib/graphwar/rsc
40     makeWrapper ${jdk}/bin/java $out/bin/graphwar \
41       --add-flags "-classpath $out/lib/graphwar Graphwar.Graphwar"
42     makeWrapper ${jdk}/bin/java $out/bin/graphwar-roomserver \
43       --add-flags "-classpath $out/lib/graphwar RoomServer.RoomServer"
44     makeWrapper ${jdk}/bin/java $out/bin/graphwar-globalserver \
45       --add-flags "-classpath $out/lib/graphwar GlobalServer.GlobalServer"
47     runHook postInstall
48   '';
50   desktopItems = [
51     (makeDesktopItem {
52       name = "graphwar";
53       exec = "graphwar";
54       desktopName = "Graphwar";
55       categories = [ "Game" ];
56     })
57   ];
59   meta = with lib; {
60     homepage = "http://www.graphwar.com/";
61     description = "Artillery game in which you must hit your enemies using mathematical functions";
62     license = licenses.gpl3Plus;
63     platforms = jdk.meta.platforms;
64     maintainers = with maintainers; [ yrd ];
65   };