[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>
Sun, 1 Jan 2023 14:42:15 +0000 (14:42 +0000)
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 aa9fb0d03413d47df38e97b4cc960354ed81132e..954197e513603027d169427aad72953e0e65330d 100644 (file)
 function(find_prefix_from_config out_var prefix_var path_to_leave)
   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)")