Use BASE editor CLI interface to build app seamlessly

This commit is contained in:
2025-07-11 09:58:46 +02:00
parent 1e8ff04930
commit 91ef5002eb
3 changed files with 67 additions and 8 deletions

51
flake.lock generated
View File

@@ -1,5 +1,29 @@
{ {
"nodes": { "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": { "flake-utils": {
"inputs": { "inputs": {
"systems": "systems" "systems": "systems"
@@ -18,6 +42,32 @@
"type": "github" "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": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1751943650, "lastModified": 1751943650,
@@ -35,6 +85,7 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"base": "base",
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
} }

View File

@@ -3,7 +3,12 @@
inputs = { inputs = {
nixpkgs.url = "nixpkgs/nixos-25.05"; nixpkgs.url = "nixpkgs/nixos-25.05";
flake-utils.url = "github:numtide/flake-utils"; 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 @ { outputs = inputs @ {

View File

@@ -1,5 +1,6 @@
{ {
pkgs, pkgs,
base,
lib, lib,
stdenv, stdenv,
system, system,
@@ -17,20 +18,22 @@ stdenv.mkDerivation rec {
pname = "base-demo"; pname = "base-demo";
version = "0.0.1"; version = "0.0.1";
src = pkgs.requireFile { src = ./.;
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.";
};
dontUnpack = true; nativeBuildInputs = [base.packages.${system}.default makeWrapper];
nativeBuildInputs = [makeWrapper]; buildPhase = ''
base-editor -bHp $src/project.json -o build
'';
installPhase = '' installPhase = ''
mkdir -p $out/bin 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 \ 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 : "${xorg.libXtst}/lib" \
--prefix LD_LIBRARY_PATH : "${openjfx17}/lib" \ --prefix LD_LIBRARY_PATH : "${openjfx17}/lib" \
--prefix LD_LIBRARY_PATH : "${glib.out}/lib" \ --prefix LD_LIBRARY_PATH : "${glib.out}/lib" \