# Check the flake.nix in zig2nix project for more options:
# <https://github.com/Cloudef/zig2nix/blob/master/flake.nix>
env = zig2nix.outputs.zig-env.${system} {};
- zighttp = env.pkgs.fetchFromGitHub {
- owner = "patrick-scho";
- repo = "zighttp";
- rev = "274c46eb3f7e9987cc9260bb70c43b4f5d8555ac";
- sha256 = "sha256-SUFHiA0r46QfzhlO6Ie1CByzC/+qPR2kyAbeDEdKOJ0=";
- };
- ziglmdb = env.pkgs.fetchFromGitHub {
- owner = "patrick-scho";
- repo = "ziglmdb";
- rev = "88cb74a430fa9629c8127c3a866c40e79a8e4612";
- sha256 = "sha256-SUFHiA0r46QfzhlO6Ie1CByzC/+qPR2kyAbeDEdKOJ0=";
- };
in with builtins; with env.pkgs.lib; rec {
- # Produces clean binaries meant to be ship'd outside of nix
- # nix build .#foreign
- packages.foreign = env.package {
+ apps.default = env.app [] "zig build run -- \"$@\"";
+ packages.default = env.package {
src = cleanSource ./.;
- # Packages required for compiling
nativeBuildInputs = with env.pkgs; [];
-
- # Packages required for linking
buildInputs = with env.pkgs; [];
- # Smaller binaries and avoids shipping glibc.
- zigPreferMusl = true;
- };
-
- # nix build .
- packages.default = packages.foreign.override (attrs: {
- # Prefer nix friendly settings.
zigPreferMusl = false;
-
- # Executables required for runtime
- # These packages will be added to the PATH
- zigWrapperBins = with env.pkgs; [];
-
- # Libraries required for runtime
- # These packages will be added to the LD_LIBRARY_PATH
- zigWrapperLibs = attrs.buildInputs or [];
- });
-
- # For bundling with nix bundle for running outside of nix
- # example: https://github.com/ralismark/nix-appimage
- apps.bundle = {
- type = "app";
- program = "${packages.foreign}/bin/default";
- };
-
- # nix run .
- apps.default = env.app [] "zig build run -- \"$@\"";
-
- # nix run .#build
- apps.build = env.app [] ''
- mkdir -p ext
- ln -s ${zighttp} ext/zighttp
- ln -s ${ziglmdb} ext/ziglmdb
- zig build "$@"
- '';
-
- # nix run .#test
- apps.test = env.app [] "zig build test -- \"$@\"";
-
- # nix run .#docs
- apps.docs = env.app [] "zig build docs -- \"$@\"";
-
- # nix run .#zig2nix
- apps.zig2nix = env.app [] "zig2nix \"$@\"";
-
- # nix develop
- devShells.default = env.mkShell {
- # Packages required for compiling, linking and running
- # Libraries added here will be automatically added to the LD_LIBRARY_PATH and PKG_CONFIG_PATH
- nativeBuildInputs = []
- ++ packages.default.nativeBuildInputs
- ++ packages.default.buildInputs
- ++ packages.default.zigWrapperBins
- ++ packages.default.zigWrapperLibs;
};
}));
}