diff --git a/flake.lock b/flake.lock index c2c0455..c8027f6 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,29 @@ { "nodes": { + "base": { + "inputs": { + "flake-utils": [ + "flake-utils" + ], + "gradle2nix": "gradle2nix", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1752220426, + "narHash": "sha256-4zLXFFq93mh2+1n+c5wPMdSZtRxbRS/d8kxQ/MkiKjE=", + "ref": "refs/heads/master", + "rev": "20598b65db7941d225095cdc97969fb1104a53d4", + "revCount": 600, + "type": "git", + "url": "https://git.orleander.pl/bartek/base.git" + }, + "original": { + "type": "git", + "url": "https://git.orleander.pl/bartek/base.git" + } + }, "flake-utils": { "inputs": { "systems": "systems" @@ -18,6 +42,32 @@ "type": "github" } }, + "gradle2nix": { + "inputs": { + "flake-utils": [ + "base", + "flake-utils" + ], + "nixpkgs": [ + "base", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1743629487, + "narHash": "sha256-MjnEgT9MhO2HknLhrx7GvBRVxdOzSKydIJMyzawe2Fk=", + "owner": "tadfisher", + "repo": "gradle2nix", + "rev": "293ecbdc10d32d9d4bdc2d23213b9be09ce247ee", + "type": "github" + }, + "original": { + "owner": "tadfisher", + "ref": "v2", + "repo": "gradle2nix", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1751943650, @@ -35,6 +85,7 @@ }, "root": { "inputs": { + "base": "base", "flake-utils": "flake-utils", "nixpkgs": "nixpkgs" } diff --git a/flake.nix b/flake.nix index d6b7ab7..124e08e 100644 --- a/flake.nix +++ b/flake.nix @@ -3,7 +3,12 @@ inputs = { nixpkgs.url = "nixpkgs/nixos-25.05"; + flake-utils.url = "github:numtide/flake-utils"; + + base.url = "git+https://git.orleander.pl/bartek/base.git"; + base.inputs.nixpkgs.follows = "nixpkgs"; + base.inputs.flake-utils.follows = "flake-utils"; }; outputs = inputs @ { diff --git a/game.nix b/game.nix index eb22739..8ebc5c7 100644 --- a/game.nix +++ b/game.nix @@ -1,5 +1,6 @@ { pkgs, + base, lib, stdenv, system, @@ -17,20 +18,22 @@ stdenv.mkDerivation rec { pname = "base-demo"; version = "0.0.1"; - src = pkgs.requireFile { - name = "${pname}-jar-${version}.jar"; - sha256 = "0k0zh3zccz1sgdqgc97glb6i2rb2459lp89j9s6hyvlzpk86sy5z"; - message = "Please compile the game with BASE game designer, then rename the output 'game.jar' file to '${pname}-jar-${version}.jar' and add it to store before proceeding."; - }; + src = ./.; - dontUnpack = true; + nativeBuildInputs = [base.packages.${system}.default makeWrapper]; - nativeBuildInputs = [makeWrapper]; + buildPhase = '' + base-editor -bHp $src/project.json -o build + ''; installPhase = '' mkdir -p $out/bin + mkdir -p $out/share/java + + cp build/out/game.jar $out/share/java/base-demo-game.jar + makeWrapper "${jdk17}/bin/java" $out/bin/base-demo \ - --add-flags "-jar ${src}" \ + --add-flags "-jar $out/share/java/base-demo-game.jar" \ --prefix LD_LIBRARY_PATH : "${xorg.libXtst}/lib" \ --prefix LD_LIBRARY_PATH : "${openjfx17}/lib" \ --prefix LD_LIBRARY_PATH : "${glib.out}/lib" \