Tweaked the package
Some checks failed
Build VulkanEngine / build (push) Has been cancelled

This commit is contained in:
Alexandre 2026-09-30 22:57:26 +02:00
parent 69492d78ac
commit 6ab1795eeb

View File

@ -1,6 +1,7 @@
{ lib
, stdenv
, fetchFromGitHub
, fetchgit
, cmake
, ninja
, pkg-config
@ -8,6 +9,7 @@
, glm
, vulkan-headers
, vulkan-loader
, vulkan-utility-libraries
, vulkan-memory-allocator
, vk-bootstrap
, fmt
@ -18,30 +20,37 @@
}:
let
fs = lib.fileset;
fastgltf = fetchFromGitHub {
owner = "spnda";
repo = "fastgltf";
rev = "v0.8.0";
hash = "sha256-nPkVMrve1+04XRpSswBqjlSurliCFBRxR8Zxy4xZ5pE=";
};
imgui = fetchgit {
url = "https://git.alexdelcamp.fr/Alexandre_1a/imgui.git";
rev = "d7cce3ad5070bbdbbd7a39335c0c1e90071211d0";
hash = "sha256-2v085YFc17aj96YlOc4Fp8sJUHUmjRU8X54FnuqKrgc=";
};
in
stdenv.mkDerivation {
pname = "vulkan-engine";
version = "0.1.0";
src = builtins.path {
path = ./.;
name = "vulkan-engine-source";
filter = path: type:
let base = baseNameOf path;
in !(builtins.elem base [
".git"
".direnv"
"build"
"result"
"result-bundle"
"_deps"
]);
};
src = ./.;
postUnpack = ''
# include/ peut ne pas exister du tout dans la copie flake
# (cas de figure ici), donc on le crée.
mkdir -p $sourceRoot/include
# On remplace les dossiers vides (ou absents) par les vraies sources
rm -rf $sourceRoot/include/imgui $sourceRoot/include/CLI11
cp -r ${imgui} $sourceRoot/include/imgui
# Autorise le write sur l'arbre : CMake va générer des fichiers
chmod -R u+w $sourceRoot
'';
nativeBuildInputs = [
cmake
@ -56,6 +65,7 @@ stdenv.mkDerivation {
glm
vulkan-headers
vulkan-loader
vulkan-utility-libraries
vk-bootstrap
vulkan-memory-allocator
fmt
@ -72,12 +82,29 @@ stdenv.mkDerivation {
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp build/engine/engine $out/bin/engine
cp build/server/server $out/bin/server
if [ -d build/engine/shaders ]; then
cp -r build/engine/shaders $out/bin/shaders
# Les binaires sont relatifs au répertoire de build (cwd = $sourceRoot/build)
cp engine/engine $out/bin/engine
cp server/server $out/bin/server
# Shaders compilés (glslang/slang) — générés dans engine/shaders
if [ -d engine/shaders ]; then
cp -r engine/shaders $out/bin/shaders
fi
# Assets copiés par addBinary() : modèles et textures
if [ -d engine/models ]; then
cp -r engine/models $out/bin/models
fi
if [ -d engine/textures ]; then
cp -r engine/textures $out/bin/textures
fi
# Fichiers annexes produits au runtime / par addBinary
[ -f engine/LICENSE ] && cp engine/LICENSE $out/bin/LICENSE
runHook postInstall
'';