This commit is contained in:
2025-11-13 00:04:03 +01:00
commit 830075116a
9 changed files with 5774 additions and 0 deletions

83
flake.nix Normal file
View File

@@ -0,0 +1,83 @@
{
description = "War in Tunnels flake for development and production";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
fenix = {
url = "github:nix-community/fenix";
inputs.nixpkgs.follows = "nixpkgs";
};
naersk = {
url = "github:nix-community/naersk";
inputs = {
nixpkgs.follows = "nixpkgs";
fenix.follows = "fenix";
};
};
};
outputs =
{
self,
nixpkgs,
naersk,
fenix,
}:
let
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
rustToolchain = fenix.packages.${system}.stable.toolchain;
naerskLib = pkgs.callPackage naersk {
cargo = rustToolchain;
rustc = rustToolchain;
};
cargoToml = builtins.fromTOML (builtins.readFile ./Cargo.toml);
packageName = cargoToml.package.name;
packageVersion = cargoToml.package.version;
bevyVersion = cargoToml.dependencies.bevy;
in
{
packages.${system} = {
default = pkgs.callPackage ./default.nix {
packageName = packageName;
};
develop = naerskLib.buildPackage {
name = "${packageName}";
src = ./.;
buildInputs = with pkgs; [
wayland
alsa-lib
libudev-zero
];
nativeBuildInputs = with pkgs; [ pkg-config ];
};
};
devShells.${system}.default = pkgs.mkShell {
env.RUST_SRC_PATH = "${pkgs.rust.packages.stable.rustPlatform.rustLibSrc}";
buildInputs = [
rustToolchain
pkgs.wayland
pkgs.alsa-lib
pkgs.libudev-zero
];
nativeBuildInputs = with pkgs; [ pkg-config ];
shellHook = ''
echo "${packageName} v${packageVersion}"
echo "Bevy v${bevyVersion}"
echo ""
echo "Commands:"
echo " nix build - Build production version"
echo " nix run - Run production version"
echo " nix build .#develop - Build development version"
echo " nix run .#develop - Run development version"
'';
};
};
}