breezy-desktop/.nix/packages/breezy-vulkan/default.nix

61 lines
1.3 KiB
Nix

{
self,
version,
lib,
stdenv,
fetchFromGitHub,
meson,
ninja,
pkg-config,
glslang,
spirv-headers,
vulkan-headers,
vulkan-loader,
libx11,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "breezy-vulkan";
inherit version;
src = "${self}/vulkan/modules/vkBasalt";
nativeBuildInputs = [
meson
ninja
pkg-config
glslang
];
buildInputs = [
spirv-headers
vulkan-headers
vulkan-loader
libx11
];
postInstall =
let
sombreroSrc = "${self}/modules/sombrero";
vulkanSrc = "${self}/vulkan";
in
''
# Install sombrero shaders
mkdir -p $out/share/breezy-vulkan/shaders
cp ${sombreroSrc}/Sombrero.frag $out/share/breezy-vulkan/shaders/
cp ${sombreroSrc}/calibrating.png $out/share/breezy-vulkan/shaders/ || true
# Install breezy vulkan config
install -Dm644 ${vulkanSrc}/config/vkBasalt.conf $out/share/breezy-vulkan/vkBasalt.conf
# Install custom banner
cp ${vulkanSrc}/custom_banner.png $out/share/breezy-vulkan/ || true
'';
meta = {
description = "Vulkan post-processing layer for Breezy Desktop XR gaming";
homepage = "https://github.com/wheaney/breezy-desktop";
license = lib.licenses.gpl3Only;
platforms = [ "x86_64-linux" ];
};
})