diff --git a/flake.nix b/flake.nix index dcdcc2d..219d85a 100644 --- a/flake.nix +++ b/flake.nix @@ -11,19 +11,23 @@ let pkgs = import nixpkgs { inherit system; }; zig = pkgs.zig_0_11; - buildZigPackage = import ./nix/build-zig-package.nix { - inherit (pkgs) stdenv; - inherit zig; - }; in { devShells.default = pkgs.mkShellNoCC { buildInputs = [ zig pkgs.zls ]; }; - packages.default = buildZigPackage { + packages.default = pkgs.stdenv.mkDerivation { name = "aoc23"; src = pkgs.nix-gitignore.gitignoreSource [ ] ./.; + + nativeBuildInputs = [ zig.hook ]; + + meta = { + description = "Advent of Code 2023"; + homepage = "https://git.xeal.me/xeals/aoc23"; + inherit (zig.meta) platforms; + }; }; }); } diff --git a/nix/build-zig-package.nix b/nix/build-zig-package.nix deleted file mode 100644 index c6707f2..0000000 --- a/nix/build-zig-package.nix +++ /dev/null @@ -1,57 +0,0 @@ -{ stdenv -, zig -}: - -{ buildInputs ? [ ] -, nativeBuildInputs ? [ ] -, optimize ? "ReleaseSafe" -, meta ? { } -, ... -}@args: - -stdenv.mkDerivation (args // { - nativeBuildInputs = nativeBuildInputs ++ [ - zig - ]; - - buildInputs = buildInputs; - - strictDeps = true; - - configurePhase = args.configurePhase or '' - runHook preConfigure - runHook postConfigure - ''; - - ZIGFLAGS = args.ZIGFLAGS or [ - "-Doptimize=${optimize}" - ]; - - # https://github.com/ziglang/zig/issues/6810 requires setting XDG_CACHE_HOME - # in all zig build phases. --cache-dir and --global-cache-dir do not prevent - # the builder from attempting to create the XDG cache. - - buildPhase = args.buildPhase or '' - runHook preBuild - XDG_CACHE_HOME=_cache zig build $ZIGFLAGS - runHook postBuild - ''; - - doCheck = args.doCheck or true; - checkPhase = args.checkPhase or '' - runHook preCheck - XDG_CACHE_HOME=_cache zig build test $ZIGFLAGS - runHook postCheck - ''; - - installPhase = args.installPhase or '' - runHook preInstall - XDG_CACHE_HOME=_cache zig build install --prefix $out $ZIGFLAGS - runHook postInstall - ''; - - meta = { - # default to Zig's platforms - platforms = zig.meta.platforms; - } // meta; -})