summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2023-05-10 12:11:25 +0000
committerYureka <yuka@yuka.dev>2023-05-19 09:18:41 +0200
commitab036e45ac19e29b2fa914bc04e1e7318a3f8861 (patch)
treec64d1f2821f5478a4e2a89a767f2b2bcc57553c4
parent99a83b49645c59a8ffed79b164909c1e75507015 (diff)
downloadnixpkgs-ab036e45ac19e29b2fa914bc04e1e7318a3f8861.tar
nixpkgs-ab036e45ac19e29b2fa914bc04e1e7318a3f8861.tar.gz
nixpkgs-ab036e45ac19e29b2fa914bc04e1e7318a3f8861.tar.bz2
nixpkgs-ab036e45ac19e29b2fa914bc04e1e7318a3f8861.tar.lz
nixpkgs-ab036e45ac19e29b2fa914bc04e1e7318a3f8861.tar.xz
nixpkgs-ab036e45ac19e29b2fa914bc04e1e7318a3f8861.tar.zst
nixpkgs-ab036e45ac19e29b2fa914bc04e1e7318a3f8861.zip
libclc: fix cross
-rw-r--r--pkgs/development/libraries/libclc/default.nix30
-rw-r--r--pkgs/top-level/all-packages.nix4
2 files changed, 21 insertions, 13 deletions
diff --git a/pkgs/development/libraries/libclc/default.nix b/pkgs/development/libraries/libclc/default.nix
index 7f1580bd107..1db2819a57b 100644
--- a/pkgs/development/libraries/libclc/default.nix
+++ b/pkgs/development/libraries/libclc/default.nix
@@ -1,9 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, ninja, cmake, python3, llvmPackages, spirv-llvm-translator }:
-
-let
-  llvm = llvmPackages.llvm;
-  clang-unwrapped = llvmPackages.clang-unwrapped;
-in
+{ lib, stdenv, fetchFromGitHub, buildPackages, ninja, cmake, python3, llvm_14 }:
 
 stdenv.mkDerivation rec {
   pname = "libclc";
@@ -17,22 +12,37 @@ stdenv.mkDerivation rec {
   };
   sourceRoot = "source/libclc";
 
+  outputs = [ "out" "dev" ];
+
   # cmake expects all required binaries to be in the same place, so it will not be able to find clang without the patch
   postPatch = ''
     substituteInPlace CMakeLists.txt \
       --replace 'find_program( LLVM_CLANG clang PATHS ''${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH )' \
-                'find_program( LLVM_CLANG clang PATHS "${clang-unwrapped}/bin" NO_DEFAULT_PATH )' \
+                'find_program( LLVM_CLANG clang PATHS "${buildPackages.clang_14.cc}/bin" NO_DEFAULT_PATH )' \
+      --replace 'find_program( LLVM_AS llvm-as PATHS ''${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH )' \
+                'find_program( LLVM_AS llvm-as PATHS "${buildPackages.llvm_14}/bin" NO_DEFAULT_PATH )' \
+      --replace 'find_program( LLVM_LINK llvm-link PATHS ''${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH )' \
+                'find_program( LLVM_LINK llvm-link PATHS "${buildPackages.llvm_14}/bin" NO_DEFAULT_PATH )' \
+      --replace 'find_program( LLVM_OPT opt PATHS ''${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH )' \
+                'find_program( LLVM_OPT opt PATHS "${buildPackages.llvm_14}/bin" NO_DEFAULT_PATH )' \
       --replace 'find_program( LLVM_SPIRV llvm-spirv PATHS ''${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH )' \
-                'find_program( LLVM_SPIRV llvm-spirv PATHS "${spirv-llvm-translator}/bin" NO_DEFAULT_PATH )'
+                'find_program( LLVM_SPIRV llvm-spirv PATHS "${buildPackages.spirv-llvm-translator}/bin" NO_DEFAULT_PATH )'
+  '' + lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
+    substituteInPlace CMakeLists.txt \
+      --replace 'COMMAND prepare_builtins' 'COMMAND ${buildPackages.libclc.dev}/bin/prepare_builtins'
   '';
 
-  nativeBuildInputs = [ cmake ninja python3 spirv-llvm-translator ];
-  buildInputs = [ llvm clang-unwrapped ];
+  nativeBuildInputs = [ cmake ninja python3 ];
+  buildInputs = [ llvm_14 ];
   strictDeps = true;
   cmakeFlags = [
     "-DCMAKE_INSTALL_INCLUDEDIR=include"
   ];
 
+  postInstall = ''
+    install -Dt $dev/bin prepare_builtins
+  '';
+
   meta = with lib; {
     broken = stdenv.isDarwin;
     homepage = "http://libclc.llvm.org/";
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index ef40c123234..f9cab498754 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -21501,9 +21501,7 @@ with pkgs;
 
   libcint = callPackage ../development/libraries/libcint { };
 
-  libclc = callPackage ../development/libraries/libclc {
-    llvmPackages = llvmPackages_14;
-  };
+  libclc = callPackage ../development/libraries/libclc { };
 
   libcli = callPackage ../development/libraries/libcli { };