{ lib, stdenv, fetchFromGitHub, cmake, python3, spirv-headers }: stdenv.mkDerivation rec { pname = "spirv-tools"; version = "1.3.239.0"; src = (assert version == spirv-headers.version; fetchFromGitHub { owner = "KhronosGroup"; repo = "SPIRV-Tools"; rev = "sdk-${version}"; hash = "sha256-xLYykbCHb6OH5wUSgheAfReXhxZtI3RqBJ+PxDZx58s="; } ); nativeBuildInputs = [ cmake python3 ]; cmakeFlags = [ "-DSPIRV-Headers_SOURCE_DIR=${spirv-headers.src}" # Avoid blanket -Werror to evade build failures on less # tested compilers. "-DSPIRV_WERROR=OFF" ]; # 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; { description = "The SPIR-V Tools project provides an API and commands for processing SPIR-V modules"; homepage = "https://github.com/KhronosGroup/SPIRV-Tools"; license = licenses.asl20; platforms = platforms.unix; maintainers = [ maintainers.ralith ]; }; }