Vulkan/flake.nix
Alexandre a78a17fdde
Some checks failed
Build VulkanEngine / build (push) Failing after 3s
Tweaked the action
2026-10-07 13:24:28 +02:00

110 lines
2.4 KiB
Nix

{
description = "VulkanEngine development environment";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, flake-utils }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
};
vulkanPackages = with pkgs; [
vulkan-headers
vulkan-loader
vulkan-validation-layers
vulkan-tools
vulkan-utility-libraries
vulkan-memory-allocator
vulkan-volk
vk-bootstrap
];
developmentPackages = with pkgs; [
# Shaders
shader-slang
glslang
# Vulkan
vulkan-headers
vulkan-loader
vulkan-validation-layers
vulkan-tools
vulkan-utility-libraries
vulkan-memory-allocator
vulkan-volk
vk-bootstrap
# Windowing
glfw3
wayland
wayland-protocols
wayland-scanner
libxkbcommon
# Audio
libpulseaudio
libpulseaudio.dev
# Libraries
fmt
cli11
simdjson
glm
nlohmann_json
tinyobjloader
tinygltf
stb
# Build
cmake
ninja
pkg-config
# Debug
gdb
renderdoc
];
in {
devShells.default = pkgs.mkShell {
name = "vulkan-engine";
hardeningDisable = [
"fortify"
];
packages = developmentPackages;
VK_LAYER_PATH =
"${pkgs.vulkan-validation-layers}/share/vulkan/explicit_layer.d";
VULKAN_SDK =
"${pkgs.vulkan-validation-layers}";
shellHook = ''
echo "VulkanEngine development environment"
echo "CMake: $(cmake --version | head -n1)"
echo "Ninja: $(ninja --version)"
echo "GCC: $(g++ --version | head -n1)"
echo "GLSLang: $(glslangValidator --version | head -n1)"
echo "Slang: $(slangc -v | head -n1)"
unset SOURCE_DATE_EPOCH
'';
};
packages.engine =
pkgs.callPackage ./package.nix {};
packages.default =
self.packages.${system}.engine;
}
);
}