Vulkan/package.nix
2026-09-30 22:09:58 +02:00

66 lines
1.2 KiB
Nix

{ lib
, stdenv
, cmake
, ninja
, pkg-config
, glfw3
, glm
, vulkan-headers
, vulkan-loader
, vulkan-memory-allocator
, fmt
, cli11
, glslang
, shader-slang
, fastgltf
, vk-bootstrap
}:
stdenv.mkDerivation {
pname = "vulkan-engine";
version = "0.1.0";
src = ./.;
nativeBuildInputs = [
cmake
ninja
pkg-config
glslang
shader-slang
];
buildInputs = [
glfw3
glm
vulkan-headers
vulkan-loader
vulkan-memory-allocator
fmt
cli11
fastgltf
vk-bootstrap
];
cmakeFlags = [
"-DCMAKE_BUILD_TYPE=Release"
"-DCMAKE_EXPORT_COMPILE_COMMANDS=ON"
# Si ton CMakeLists utilise FetchContent pour fastgltf/vk-bootstrap,
# il faut soit les fournir via buildInputs (ce qui est fait ici),
# soit patcher le CMakeLists pour qu'il les trouve déjà installés.
# Si le FetchContent reste actif, le build Nix échouera car
# le sandbox n'a pas d'accès réseau.
];
# Ton CMakeLists installe-t-il quelque chose ? Si non, il faut
# installer manuellement les binaires.
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp build/engine/engine $out/bin/engine
cp build/server/server $out/bin/server
runHook postInstall
'';
meta.mainProgram = "engine";
}