at 23.11-beta 50 lines 2.0 kB view raw
1{ lib, stdenv, fetchFromGitHub, cmake, python3, spirv-headers }: 2 3stdenv.mkDerivation rec { 4 pname = "spirv-tools"; 5 version = "1.3.268.0"; 6 7 src = fetchFromGitHub { 8 owner = "KhronosGroup"; 9 repo = "SPIRV-Tools"; 10 rev = "vulkan-sdk-${version}"; 11 hash = "sha256-Bned5Pa6zCFByfNvqD0M5t3l4uAJYkDlpe6wu8e7a3U="; 12 }; 13 14 # The cmake options are sufficient for turning on static building, but not 15 # for disabling shared building, just trim the shared lib from the CMake 16 # description 17 patches = lib.optional stdenv.hostPlatform.isStatic ./no-shared-libs.patch; 18 19 nativeBuildInputs = [ cmake python3 ]; 20 21 cmakeFlags = [ 22 "-DSPIRV-Headers_SOURCE_DIR=${spirv-headers.src}" 23 # Avoid blanket -Werror to evade build failures on less 24 # tested compilers. 25 "-DSPIRV_WERROR=OFF" 26 ]; 27 28 # https://github.com/KhronosGroup/SPIRV-Tools/issues/3905 29 postPatch = '' 30 substituteInPlace CMakeLists.txt \ 31 --replace '-P ''${CMAKE_CURRENT_SOURCE_DIR}/cmake/write_pkg_config.cmake' \ 32 '-DCMAKE_INSTALL_FULL_LIBDIR=''${CMAKE_INSTALL_FULL_LIBDIR} 33 -DCMAKE_INSTALL_FULL_INCLUDEDIR=''${CMAKE_INSTALL_FULL_INCLUDEDIR} 34 -P ''${CMAKE_CURRENT_SOURCE_DIR}/cmake/write_pkg_config.cmake' 35 substituteInPlace cmake/SPIRV-Tools.pc.in \ 36 --replace '$'{prefix}/@CMAKE_INSTALL_LIBDIR@ @CMAKE_INSTALL_FULL_LIBDIR@ \ 37 --replace '$'{prefix}/@CMAKE_INSTALL_INCLUDEDIR@ @CMAKE_INSTALL_FULL_INCLUDEDIR@ 38 substituteInPlace cmake/SPIRV-Tools-shared.pc.in \ 39 --replace '$'{prefix}/@CMAKE_INSTALL_LIBDIR@ @CMAKE_INSTALL_FULL_LIBDIR@ \ 40 --replace '$'{prefix}/@CMAKE_INSTALL_INCLUDEDIR@ @CMAKE_INSTALL_FULL_INCLUDEDIR@ 41 ''; 42 43 meta = with lib; { 44 description = "The SPIR-V Tools project provides an API and commands for processing SPIR-V modules"; 45 homepage = "https://github.com/KhronosGroup/SPIRV-Tools"; 46 license = licenses.asl20; 47 platforms = with platforms; unix ++ windows; 48 maintainers = [ maintainers.ralith ]; 49 }; 50}