From 71d4c9ce70e7558bdfe0d4362b3f8c21864a5ee5 Mon Sep 17 00:00:00 2001 From: Peter Collingbourne Date: Fri, 27 Jun 2025 16:04:35 -0700 Subject: [PATCH] cmake: Allow CLANG_RESOURCE_DIR to be absolute. Currently an absolute CLANG_RESOURCE_DIR is treated as being relative to bin. Fix that by using cmake_path(APPEND) to append the path to bin. The prepending of PREFIX is left as-is because callers passing PREFIX are usually forming a path within the build directory and would not want build products to be written to an absolute resource directory that is likely to be an installation prefix. One exception is the caller in lldb/cmake/modules/LLDBStandalone.cmake; for now it is not possible to build LLDB with an absolute resource directory until the users are disambiguated. Reviewers: petrhosek Reviewed By: petrhosek Pull Request: https://github.com/llvm/llvm-project/pull/145996 --- cmake/Modules/GetClangResourceDir.cmake | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cmake/Modules/GetClangResourceDir.cmake b/cmake/Modules/GetClangResourceDir.cmake index def5bd60424e..518220188f96 100644 --- a/cmake/Modules/GetClangResourceDir.cmake +++ b/cmake/Modules/GetClangResourceDir.cmake @@ -10,7 +10,8 @@ function(get_clang_resource_dir out_var) cmake_parse_arguments(ARG "" "PREFIX;SUBDIR" "" ${ARGN}) if(DEFINED CLANG_RESOURCE_DIR AND NOT CLANG_RESOURCE_DIR STREQUAL "") - set(ret_dir bin/${CLANG_RESOURCE_DIR}) + set(ret_dir bin) + cmake_path(APPEND ret_dir ${CLANG_RESOURCE_DIR}) else() if (NOT CLANG_VERSION_MAJOR) string(REGEX MATCH "^[0-9]+" CLANG_VERSION_MAJOR ${PACKAGE_VERSION})