From 5c3070a693fc1d00e1b16187a2040a48c3087e3a Mon Sep 17 00:00:00 2001 From: Ellie Hermaszewska Date: Fri, 10 Feb 2023 10:17:56 +0800 Subject: [PATCH] vulkan-validation-layers: Fix path to layer binary in layer description Fixes https://github.com/NixOS/nixpkgs/issues/215607 This solution (rather than patching the cmake source) is in line with how the other vulkan layer packages do things --- .../tools/vulkan-validation-layers/default.nix | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/pkgs/development/tools/vulkan-validation-layers/default.nix b/pkgs/development/tools/vulkan-validation-layers/default.nix index 17e898301956..efc161095580 100644 --- a/pkgs/development/tools/vulkan-validation-layers/default.nix +++ b/pkgs/development/tools/vulkan-validation-layers/default.nix @@ -4,6 +4,7 @@ , fetchFromGitHub , cmake , pkg-config +, jq , glslang , libffi , libX11 @@ -37,15 +38,10 @@ stdenv.mkDerivation rec { hash = "sha256-+VbiXtxzYaF5o+wIrJ+09LmgBdaLv/0VJGFDnBkrXms="; }); - # Include absolute paths to layer libraries in their associated - # layer definition json files. - postPatch = '' - sed "s|\([[:space:]]*set(INSTALL_DEFINES \''${INSTALL_DEFINES} -DRELATIVE_LAYER_BINARY=\"\)\(\$\")\)|\1$out/lib/\2|" -i layers/CMakeLists.txt - ''; - nativeBuildInputs = [ cmake pkg-config + jq ]; buildInputs = [ @@ -74,6 +70,15 @@ stdenv.mkDerivation rec { # available in Nix sandbox. Fails with VK_ERROR_INCOMPATIBLE_DRIVER. doCheck = false; + # Include absolute paths to layer libraries in their associated + # layer definition json files. + preFixup = '' + for f in "$out"/share/vulkan/explicit_layer.d/*.json "$out"/share/vulkan/implicit_layer.d/*.json; do + jq <"$f" >tmp.json ".layer.library_path = \"$out/lib/\" + .layer.library_path" + mv tmp.json "$f" + done + ''; + meta = with lib; { description = "The official Khronos Vulkan validation layers"; homepage = "https://github.com/KhronosGroup/Vulkan-ValidationLayers";