This commit is contained in:
parent
69492d78ac
commit
6ab1795eeb
63
package.nix
63
package.nix
@ -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
|
||||
'';
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user