diff --git a/assets/.gitkeep b/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/default.nix b/default.nix index 08cad2f..1d365e0 100644 --- a/default.nix +++ b/default.nix @@ -1,21 +1,50 @@ { - # lib, + lib, rustPlatform, - packageName, + makeWrapper, pkg-config, wayland, alsa-lib, - libudev-zero, + udev, + libxkbcommon, + vulkan-loader, }: rustPlatform.buildRustPackage { - name = "${packageName}"; + name = "war-in-tunnels"; src = ./.; buildInputs = [ wayland alsa-lib - libudev-zero + udev + libxkbcommon + vulkan-loader + ]; + nativeBuildInputs = [ + makeWrapper + pkg-config ]; - nativeBuildInputs = [ pkg-config ]; # cargoHash = lib.fakeHash; cargoHash = "sha256-ZJ7DODvIiupVlmBUhQhXEVlNeDT0S62z/5Qln77JpQc="; + cargoBuildFlags = [ + "--bin" + "war-in-tunnels" + ]; + postInstall = '' + mkdir $out/share + ls + cp -r assets $out/share + wrapProgram $out/bin/war-in-tunnels --chdir $out/share + ''; + postFixup = '' + patchelf $out/bin/.war-in-tunnels-wrapped \ + --add-rpath ${ + lib.makeLibraryPath [ + vulkan-loader + libxkbcommon + ] + } + ''; + env = { + ZSTD_SYS_USE_PKG_CONFIG = true; + }; } diff --git a/flake.nix b/flake.nix index 54432b5..3b46db5 100644 --- a/flake.nix +++ b/flake.nix @@ -36,40 +36,56 @@ }; 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; - }; + default = pkgs.callPackage ./default.nix { }; develop = naerskLib.buildPackage { - name = "${packageName}"; + name = "war-in-tunnels"; src = ./.; buildInputs = with pkgs; [ wayland alsa-lib - libudev-zero + udev + libxkbcommon + vulkan-loader ]; 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 - ]; + ] + ++ (with pkgs; [ + wayland + alsa-lib + udev + libxkbcommon + vulkan-loader + ]); nativeBuildInputs = with pkgs; [ pkg-config ]; + env = { + RUST_SRC_PATH = "${pkgs.rust.packages.stable.rustPlatform.rustLibSrc}"; + LD_LIBRARY_PATH = + with pkgs; + "$LD_LIBRARY_PATH:${ + lib.makeLibraryPath [ + wayland + alsa-lib + udev + libxkbcommon + vulkan-loader + ] + }"; + }; shellHook = '' - echo "${packageName} v${packageVersion}" + echo "War in Tunnels v${packageVersion}" echo "Bevy v${bevyVersion}" echo "" echo "Commands:"