Merge pull request #253026 from reckenrode/llvm-spirv-16

llvm-spirv-translator: add llvm 16 variant
This commit is contained in:
Mario Rodas 2023-09-21 19:25:08 -05:00 committed by GitHub
commit 9543950110
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,5 +1,6 @@
{ lib, stdenv
, fetchFromGitHub
, fetchpatch
, cmake
, pkg-config
, lit
@ -14,7 +15,11 @@ let
# ROCm will always be at the latest version
branch =
if llvmMajor == "15" || isROCm then rec {
if llvmMajor == "16" then rec {
version = "16.0.0";
rev = "v${version}";
hash = "sha256-EUabcYqSjXshbPmcs1DRLvCSL1nd9rEdpqELBrItCW8=";
} else if llvmMajor == "15" || isROCm then rec {
version = "15.0.0";
rev = "v${version}";
hash = "sha256-OsDohXRxovtEXaWiRGp8gJ0dXmoALyO+ZimeSO8aPVI=";
@ -38,6 +43,14 @@ stdenv.mkDerivation {
inherit (branch) rev hash;
};
patches = lib.optionals (llvmMajor == "16")[
# Fixes builds that link against external LLVM dynamic library
(fetchpatch {
url = "https://github.com/KhronosGroup/SPIRV-LLVM-Translator/commit/f3b9b604d7eda18d0d1029d94a6eebd33aa3a3fe.patch";
hash = "sha256-opDjyZcy7O4wcSfm/A51NCIiDyIvbcmbv9ns1njdJbc=";
})
];
nativeBuildInputs = [ pkg-config cmake spirv-tools ]
++ (if isROCm then [ llvm ] else [ llvm.dev ]);
@ -62,6 +75,9 @@ stdenv.mkDerivation {
postInstall = ''
install -D tools/llvm-spirv/llvm-spirv $out/bin/llvm-spirv
'' + lib.optionalString stdenv.isDarwin ''
install_name_tool $out/bin/llvm-spirv \
-change @rpath/libLLVMSPIRVLib.dylib $out/lib/libLLVMSPIRVLib.dylib
'';
meta = with lib; {