Move glslang and vulkan-validation-layers overrides out of all-packages

This commit is contained in:
Câju Mihai-Drosi
2020-10-15 00:54:05 +03:00
parent bda92bfad0
commit 00946dc283
3 changed files with 87 additions and 55 deletions
@@ -1,6 +1,51 @@
{ stdenv, fetchFromGitHub, cmake, writeText, python3
, vulkan-headers, vulkan-loader, glslang, spirv-headers
, pkgconfig, xlibsWrapper, libxcb, libXrandr, wayland }:
{ stdenv
, fetchFromGitHub
, cmake
, writeText
, python3
, spirv-headers
, spirv-tools
, vulkan-headers
, vulkan-loader
, glslang
, pkgconfig
, xlibsWrapper
, libxcb
, libXrandr
, wayland
}:
# vulkan-validation-layers requires a custom glslang version, while glslang requires
# custom versions for spirv-tools and spirv-headers. The git hashes required for all
# of these deps is documented upstream here:
# https://github.com/KhronosGroup/Vulkan-ValidationLayers/blob/master/scripts/known_good.json
let
localGlslang = (glslang.override {
argSpirv-tools = spirv-tools.overrideAttrs (_: {
src = fetchFromGitHub {
owner = "KhronosGroup";
repo = "SPIRV-Tools";
rev = "e128ab0d624ce7beb08eb9656bb260c597a46d0a";
sha256 = "0jj8zrl3dh9fq71jc8msx3f3ifb2vjcb37nl0w4sa8sdhfff74pv";
};
});
argSpirv-headers = spirv-headers.overrideAttrs (_: {
src = fetchFromGitHub {
owner = "KhronosGroup";
repo = "SPIRV-Headers";
rev = "ac638f1815425403e946d0ab78bac71d2bdbf3be";
sha256 = "1lkhs7pxcrfkmiizcxl0w5ajx6swwjv7w3iq586ipgh571fc75gx";
};
});
}).overrideAttrs (_: {
src = fetchFromGitHub {
owner = "KhronosGroup";
repo = "glslang";
rev = "e00d27c6d65b7d3e72506a311d7f053da4051295";
sha256 = "00lzvzk613gpm1vsdxffmx52z3c52ijwvzk4sfhh95p71kdydhgv";
};
});
in
stdenv.mkDerivation rec {
pname = "vulkan-validation-layers";
@@ -20,8 +65,8 @@ stdenv.mkDerivation rec {
];
buildInputs = [
glslang
spirv-headers
localGlslang
localGlslang.spirv-headers
vulkan-headers
vulkan-loader
libxcb
@@ -32,7 +77,7 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
cmakeFlags = [
"-DGLSLANG_INSTALL_DIR=${glslang}"
"-DGLSLANG_INSTALL_DIR=${localGlslang}"
];
# Help vulkan-loader find the validation layers