about summary refs log tree commit diff
path: root/pkgs/development/interpreters/cling/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/interpreters/cling/default.nix')
-rw-r--r--pkgs/development/interpreters/cling/default.nix62
1 files changed, 29 insertions, 33 deletions
diff --git a/pkgs/development/interpreters/cling/default.nix b/pkgs/development/interpreters/cling/default.nix
index ed204c8863f67..08909063ce46f 100644
--- a/pkgs/development/interpreters/cling/default.nix
+++ b/pkgs/development/interpreters/cling/default.nix
@@ -4,7 +4,7 @@
 , git
 , lib
 , libffi
-, llvmPackages_9
+, llvmPackages_13
 , makeWrapper
 , ncurses
 , python3
@@ -34,46 +34,40 @@
 let
   stdenv = clangStdenv;
 
-  # The LLVM 9 headers have a couple bugs we need to patch
-  fixedLlvmDev = runCommand "llvm-dev-${llvmPackages_9.llvm.version}" { buildInputs = [git]; } ''
-    mkdir $out
-    cp -r ${llvmPackages_9.llvm.dev}/include $out
-    cd $out
-    chmod -R u+w include
-    git apply ${./fix-llvm-include.patch}
-  '';
+  # The patched clang lives in the LLVM megarepo
+  clangSrc = fetchFromGitHub {
+    owner = "root-project";
+    repo = "llvm-project";
+    # cling-llvm13 branch
+    rev = "3610201fbe0352a63efb5cb45f4ea4987702c735";
+    sha256 = "sha256-Cb7BvV7yobG+mkaYe7zD2KcnPvm8/vmVATNWssklXyk=";
+    sparseCheckout = ["clang"];
+  };
 
   unwrapped = stdenv.mkDerivation rec {
     pname = "cling-unwrapped";
-    version = "0.9";
+    version = "1.0";
 
-    src = fetchgit {
-      url = "http://root.cern/git/clang.git";
-      rev = "cling-v0.9";
-      sha256 = "sha256-ft1NUIclSiZ9lN3Z3DJCWA0U9q/K1M0TKkZr+PjsFYk=";
-    };
+    src = "${clangSrc}/clang";
 
     clingSrc = fetchFromGitHub {
       owner = "root-project";
       repo = "cling";
-      rev = "v0.9";
-      sha256 = "0wx3fi19wfjcph5kclf8108i436y79ddwakrcf0lgxnnxhdjyd29";
+      rev = "v1.0";
+      sha256 = "sha256-Ye8EINzt+dyNvUIRydACXzb/xEPLm0YSkz08Xxw3xp4=";
     };
 
     prePatch = ''
       echo "add_llvm_external_project(cling)" >> tools/CMakeLists.txt
 
-      cp -r $clingSrc ./tools/cling
-      chmod -R a+w ./tools/cling
+      cp -r $clingSrc tools/cling
+      chmod -R a+w tools/cling
     '';
 
     patches = [
       ./no-clang-cpp.patch
 
-      # https://github.com/root-project/root/commit/286d96b12aad8688b9d8e4b3b5df843dcfb716a8
-      ./fix-llvm-dylib-usage.patch
-
-      ./force-install-cling-targets.patch
+      # ./force-install-cling-targets.patch
     ];
 
     nativeBuildInputs = [ python3 git cmake ];
@@ -82,12 +76,12 @@ let
     strictDeps = true;
 
     cmakeFlags = [
-      "-DLLVM_BINARY_DIR=${llvmPackages_9.llvm.out}"
-      "-DLLVM_CONFIG=${llvmPackages_9.llvm.dev}/bin/llvm-config"
-      "-DLLVM_LIBRARY_DIR=${llvmPackages_9.llvm.lib}/lib"
-      "-DLLVM_MAIN_INCLUDE_DIR=${fixedLlvmDev}/include"
-      "-DLLVM_TABLEGEN_EXE=${llvmPackages_9.llvm.out}/bin/llvm-tblgen"
-      "-DLLVM_TOOLS_BINARY_DIR=${llvmPackages_9.llvm.out}/bin"
+      "-DLLVM_BINARY_DIR=${llvmPackages_13.llvm.out}"
+      "-DLLVM_CONFIG=${llvmPackages_13.llvm.dev}/bin/llvm-config"
+      "-DLLVM_LIBRARY_DIR=${llvmPackages_13.llvm.lib}/lib"
+      "-DLLVM_MAIN_INCLUDE_DIR=${llvmPackages_13.llvm.dev}/include"
+      "-DLLVM_TABLEGEN_EXE=${llvmPackages_13.llvm.out}/bin/llvm-tblgen"
+      "-DLLVM_TOOLS_BINARY_DIR=${llvmPackages_13.llvm.out}/bin"
       "-DLLVM_BUILD_TOOLS=Off"
       "-DLLVM_TOOL_CLING_BUILD=ON"
 
@@ -126,9 +120,9 @@ let
 
   # Runtime flags for the C++ standard library
   cxxFlags = if useLLVMLibcxx then [
-    "-I" "${lib.getDev llvmPackages_9.libcxx}/include/c++/v1"
-    "-L" "${llvmPackages_9.libcxx}/lib"
-    "-l" "${llvmPackages_9.libcxx}/lib/libc++.so"
+    "-I" "${lib.getDev llvmPackages_13.libcxx}/include/c++/v1"
+    "-L" "${llvmPackages_13.libcxx}/lib"
+    "-l" "${llvmPackages_13.libcxx}/lib/libc++.so"
   ] else [
     "-I" "${gcc-unwrapped}/include/c++/${gcc-unwrapped.version}"
     "-I" "${gcc-unwrapped}/include/c++/${gcc-unwrapped.version}/x86_64-unknown-linux-gnu"
@@ -149,7 +143,9 @@ let
     "-nostdinc"
     "-nostdinc++"
 
-    "-isystem" "${lib.getLib unwrapped}/lib/clang/9.0.1/include"
+    "-resource-dir" "${llvmPackages_13.llvm.lib}/lib"
+
+    "-isystem" "${lib.getLib unwrapped}/lib/clang/${llvmPackages_13.clang.version}/include"
   ]
   ++ cxxFlags
   ++ [