Unverified Commit 95439501 authored by Mario Rodas's avatar Mario Rodas Committed by GitHub
Browse files

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

llvm-spirv-translator: add llvm 16 variant
parents aea64922 238571b2
Loading
Loading
Loading
Loading
+17 −1
Original line number Diff line number Diff line
{ 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; {