{ lib, stdenv, fetchFromGitHub, cmake, python3, spirv-headers }: stdenv.mkDerivation rec { pname = "spirv-tools"; version = "1.3.224.1"; src = (assert version == spirv-headers.version; fetchFromGitHub { owner = "KhronosGroup"; repo = "SPIRV-Tools"; rev = "sdk-${version}"; hash = "sha256-jpVvjrNrTAKUY4sjUT/gCUElLtW4BrznH1DbStojGB8="; } ); nativeBuildInputs = [ cmake python3 ]; cmakeFlags = [ "-DSPIRV-Headers_SOURCE_DIR=${spirv-headers.src}" ]; # https://github.com/KhronosGroup/SPIRV-Tools/issues/3905 postPatch = '' substituteInPlace CMakeLists.txt \ --replace '-P ''${CMAKE_CURRENT_SOURCE_DIR}/cmake/write_pkg_config.cmake' \ '-DCMAKE_INSTALL_FULL_LIBDIR=''${CMAKE_INSTALL_FULL_LIBDIR} -DCMAKE_INSTALL_FULL_INCLUDEDIR=''${CMAKE_INSTALL_FULL_INCLUDEDIR} -P ''${CMAKE_CURRENT_SOURCE_DIR}/cmake/write_pkg_config.cmake' substituteInPlace cmake/SPIRV-Tools.pc.in \ --replace '$'{prefix}/@CMAKE_INSTALL_LIBDIR@ @CMAKE_INSTALL_FULL_LIBDIR@ \ --replace '$'{prefix}/@CMAKE_INSTALL_INCLUDEDIR@ @CMAKE_INSTALL_FULL_INCLUDEDIR@ substituteInPlace cmake/SPIRV-Tools-shared.pc.in \ --replace '$'{prefix}/@CMAKE_INSTALL_LIBDIR@ @CMAKE_INSTALL_FULL_LIBDIR@ \ --replace '$'{prefix}/@CMAKE_INSTALL_INCLUDEDIR@ @CMAKE_INSTALL_FULL_INCLUDEDIR@ ''; meta = with lib; { inherit (src.meta) homepage; description = "The SPIR-V Tools project provides an API and commands for processing SPIR-V modules"; license = licenses.asl20; platforms = platforms.unix; maintainers = [ maintainers.ralith ]; }; }