{ description = "Godot test project"; inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; outputs = { self, nixpkgs }: let allSystems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; forAllSystems = f: nixpkgs.lib.genAttrs allSystems ( system: f { pkgs = import nixpkgs { inherit system; }; } ); in { devShells = forAllSystems ( { pkgs }: { default = pkgs.mkShell { packages = with pkgs; [ godot blender krita gimp ]; }; } ); packages = forAllSystems ( { pkgs }: { fmm = pkgs.stdenv.mkDerivation { pname = "fmm"; version = "0.1.0"; src = ./.; strictDeps = true; nativeBuildInputs = with pkgs; [ godot ]; buildPhase = '' runHook preBuild export HOME=$(mktemp -d) mkdir -p $HOME/.local/share/godot/ ln -s ${pkgs.godot.export-template}/share/godot/export_templates "$HOME/.local/share/godot/" mkdir -p game/build cd game echo "godot --headless --export-debug Linux ./build/fmm" godot --headless --export-release Linux ./build/fmm runHook postBuild ''; installPhase = '' find . install -D -m 755 -t $out/libexec ./build/fmm install -D -m 644 -t $out/libexec ./build/fmm.pck install -d -m 755 $out/bin ln -s $out/libexec/fmm $out/bin/fmm ''; }; } ); }; }