diff --git a/flake.nix b/flake.nix index 5695498..e745bbd 100644 --- a/flake.nix +++ b/flake.nix @@ -1,18 +1,13 @@ { inputs.nixpkgs.url = "github:NixOS/nixpkgs?ref=nixos-unstable"; - outputs = { - self, - nixpkgs, - ... - }: let + outputs = {nixpkgs, ...}: let systems = ["x86_64-linux" "aarch64-linux"]; forEachSystem = nixpkgs.lib.genAttrs systems; pkgsForEach = nixpkgs.legacyPackages; in { packages = forEachSystem (system: { - rogged = pkgsForEach.${system}.callPackage ./nix/package.nix {}; - default = self.packages.${system}.rogged; + default = pkgsForEach.${system}.callPackage ./nix/package.nix {}; }); devShells = forEachSystem (system: { diff --git a/nix/package.nix b/nix/package.nix index 0177a10..8fb5c18 100644 --- a/nix/package.nix +++ b/nix/package.nix @@ -5,23 +5,14 @@ raylib, pkg-config, }: -stdenv.mkDerivation { +stdenv.mkDerivation (finalAttrs: { pname = "rogged"; version = "0.0.1"; - src = let - fs = lib.fileset; - s = ../.; - in - fs.toSource { - root = s; - fileset = fs.unions [ - (s + /assets) - (s + /libs) - (s + /src) - (s + /build.zig) - ]; - }; + src = builtins.path { + path = ../.; + name = finalAttrs.pname; + }; nativeBuildInputs = [ zig @@ -30,9 +21,25 @@ stdenv.mkDerivation { buildInputs = [raylib]; + dontConfigure = true; + + buildPhase = '' + runHook preBuild + export ZIG_GLOBAL_CACHE_DIR="$TMPDIR/zig-cache" + zig build --release=fast + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + mkdir -p $out/bin + cp zig-out/bin/roguelike $out/bin/ + runHook postInstall + ''; + meta = { description = "A turn-based roguelike game"; license = lib.licenses.mit; mainProgram = "roguelike"; }; -} +})