56 lines
2.0 KiB
Diff
56 lines
2.0 KiB
Diff
From a4ed1625ee4e74c4e8664742165d6a485b737d57 Mon Sep 17 00:00:00 2001
|
|
From: Jonas Rembser <jonas.rembser@cern.ch>
|
|
Date: Tue, 22 Apr 2025 12:36:46 +0200
|
|
Subject: [PATCH] Work around find_package(LLVM) overwriting
|
|
LLVM_LINK_LLVM_DYLIB
|
|
|
|
---
|
|
clang/CMakeLists.txt | 10 ++++++++++
|
|
.../clang/cmake/modules/ClangConfig.cmake.in | 6 ++++++
|
|
2 files changed, 16 insertions(+)
|
|
|
|
diff --git a/clang/CMakeLists.txt b/clang/CMakeLists.txt
|
|
index 5f2b7f064d..a9581d081e 100644
|
|
--- a/clang/CMakeLists.txt
|
|
+++ b/clang/CMakeLists.txt
|
|
@@ -28,7 +28,17 @@ if(CLANG_BUILT_STANDALONE)
|
|
mark_as_advanced(LLVM_ENABLE_ASSERTIONS)
|
|
endif()
|
|
|
|
+ # Remember current value of LLVM_LINK_LLVM_DYLIB and reset later, because
|
|
+ # find_package(LLVM) is overwriting it without a good reason. See:
|
|
+ # https://github.com/llvm/llvm-project/pull/135570
|
|
+ if(DEFINED LLVM_LINK_LLVM_DYLIB)
|
|
+ set(llvm_link_llvm_dylib ${LLVM_LINK_LLVM_DYLIB})
|
|
+ endif()
|
|
find_package(LLVM REQUIRED HINTS "${LLVM_CMAKE_DIR}")
|
|
+ if(DEFINED llvm_link_llvm_dylib)
|
|
+ set(LLVM_LINK_LLVM_DYLIB ${llvm_link_llvm_dylib})
|
|
+ endif()
|
|
+
|
|
list(APPEND CMAKE_MODULE_PATH "${LLVM_DIR}")
|
|
|
|
# Turn into CACHE PATHs for overwritting
|
|
diff --git a/clang/cmake/modules/ClangConfig.cmake.in b/clang/cmake/modules/ClangConfig.cmake.in
|
|
index 5f67681649..36a34ddab2 100644
|
|
--- a/clang/cmake/modules/ClangConfig.cmake.in
|
|
+++ b/clang/cmake/modules/ClangConfig.cmake.in
|
|
@@ -3,8 +3,14 @@
|
|
@CLANG_CONFIG_CODE@
|
|
|
|
set(LLVM_VERSION @LLVM_VERSION_MAJOR@.@LLVM_VERSION_MINOR@.@LLVM_VERSION_PATCH@)
|
|
+
|
|
+# ROOT calls find_package(LLVM) before find_package(Clang), and
|
|
+# find_package(LLVM) is overwriting LLVM_LINK_LLVM_DYLIB without a good
|
|
+# reason. See: https://github.com/llvm/llvm-project/pull/135570
|
|
+# So we need to set it to what it needs to be for ROOT.
|
|
find_package(LLVM ${LLVM_VERSION} EXACT REQUIRED CONFIG
|
|
HINTS "@CLANG_CONFIG_LLVM_CMAKE_DIR@")
|
|
+set(LLVM_LINK_LLVM_DYLIB OFF)
|
|
|
|
set(CLANG_EXPORTED_TARGETS "@CLANG_EXPORTS@")
|
|
set(CLANG_CMAKE_DIR "@CLANG_CONFIG_CMAKE_DIR@")
|
|
--
|
|
2.49.0
|
|
|