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