[PATCH] [clang] cmake: resolve symlinks in ClangConfig.cmake
authorPeter Wu <peter@lekensteyn.nl>
Fri, 4 May 2018 13:55:26 +0000 (15:55 +0200)
committerSylvestre Ledru <sylvestre@debian.org>
Wed, 30 Oct 2024 20:56:13 +0000 (21:56 +0100)
Ensure that symlinks such as /usr/lib/cmake/clang-X.Y (pointing to
/usr/lib/llvm-X.Y/lib/cmake/llvm) are resolved. This ensures that
CLANG_INSTALL_PREFIX ends up to be /usr/lib/llvm-X.Y instead of /usr.

Partially addresses PR37128

Gbp-Pq: Name 0001-tools-clang-cmake-resolve-symlinks-in-ClangConfig.cmake.patch

cmake/Modules/FindPrefixFromConfig.cmake

index 22211e4b72f2833f5f3e4b24eb63690dbed17395..c545dbd7ecfe4517b27885f890b4fefb1978d358 100644 (file)
@@ -39,10 +39,10 @@ function(find_prefix_from_config out_var prefix_var path_to_leave)
     # install prefix, and avoid hard-coding any absolute paths.
     set(config_code
       "# Compute the installation prefix from this LLVMConfig.cmake file location."
-      "get_filename_component(${prefix_var} \"\${CMAKE_CURRENT_LIST_FILE}\" PATH)")
+      "get_filename_component(${prefix_var} \"\${CMAKE_CURRENT_LIST_FILE}\" REALPATH)")
     # Construct the proper number of get_filename_component(... PATH)
     # calls to compute the installation prefix.
-    string(REGEX REPLACE "/" ";" _count "${path_to_leave}")
+    string(REGEX REPLACE "/" ";" _count "prefix/${path_to_leave}")
     foreach(p ${_count})
       list(APPEND config_code
         "get_filename_component(${prefix_var} \"\${${prefix_var}}\" PATH)")