init
This commit is contained in:
70
flake.nix
Normal file
70
flake.nix
Normal file
@@ -0,0 +1,70 @@
|
||||
{
|
||||
description = "JavaFX terminal using jlibghostty and GraalVM Native Image";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
jlibghostty.url = "git+https://gitea.gregorlohaus.com/gregor/jlibghostty.git";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, jlibghostty }:
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
pkgs = import nixpkgs { inherit system; };
|
||||
|
||||
jlib = jlibghostty.packages.${system}.jlibghostty;
|
||||
graalvm = pkgs.graalvmPackages.graalvm-ce;
|
||||
in {
|
||||
packages.${system}.default = pkgs.stdenvNoCC.mkDerivation {
|
||||
pname = "jprototerm";
|
||||
version = "0.1.0";
|
||||
src = ./.;
|
||||
|
||||
nativeBuildInputs = [
|
||||
graalvm
|
||||
pkgs.gradle
|
||||
pkgs.makeWrapper
|
||||
];
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
export HOME=$TMPDIR/home
|
||||
export GRADLE_USER_HOME=$TMPDIR/gradle
|
||||
mkdir -p "$HOME" "$GRADLE_USER_HOME"
|
||||
|
||||
gradle \
|
||||
--no-daemon \
|
||||
-PjlibghosttyMavenRepo=${jlib}/maven \
|
||||
nativeCompile
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/bin
|
||||
cp build/gluonfx/*/*/jprototerm $out/bin/jprototerm
|
||||
|
||||
wrapProgram $out/bin/jprototerm \
|
||||
--set GDK_BACKEND x11 \
|
||||
--prefix PATH : ${pkgs.lib.makeBinPath [ pkgs.util-linux pkgs.bash ]}
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
};
|
||||
|
||||
devShells.${system}.default = pkgs.mkShell {
|
||||
packages = [
|
||||
graalvm
|
||||
pkgs.gradle
|
||||
pkgs.util-linux
|
||||
];
|
||||
|
||||
shellHook = ''
|
||||
export JLIBGHOSTTY_MAVEN_REPO=${jlib}/maven
|
||||
echo "Use: gradle -PjlibghosttyMavenRepo=$JLIBGHOSTTY_MAVEN_REPO run"
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user