summaryrefslogtreecommitdiffstats
path: root/Modules/Compiler
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2024-02-22 13:23:19 (GMT)
committerKitware Robot <kwrobot@kitware.com>2024-02-22 13:24:00 (GMT)
commitc29bc18b1022885b799c06a28e6cd61f097c24b1 (patch)
tree48055037ac8c3041465dfd574b785cbd15ec1aea /Modules/Compiler
parent54c36c7557ae957c00d89839493bbacd650755db (diff)
parenta3ada1a2418e7b8a4ebee1e746ab46cb86f25a61 (diff)
downloadCMake-c29bc18b1022885b799c06a28e6cd61f097c24b1.zip
CMake-c29bc18b1022885b799c06a28e6cd61f097c24b1.tar.gz
CMake-c29bc18b1022885b799c06a28e6cd61f097c24b1.tar.bz2
Merge topic 'cxxmodules-clang-resource-dir'
a3ada1a241 Clang: detect -resource-dir for clang-scan-deps Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !9274
Diffstat (limited to 'Modules/Compiler')
-rw-r--r--Modules/Compiler/Clang-CXX.cmake8
1 files changed, 8 insertions, 0 deletions
diff --git a/Modules/Compiler/Clang-CXX.cmake b/Modules/Compiler/Clang-CXX.cmake
index a1ce6a1..46fc48d 100644
--- a/Modules/Compiler/Clang-CXX.cmake
+++ b/Modules/Compiler/Clang-CXX.cmake
@@ -32,6 +32,12 @@ endif()
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 16.0)
if("x${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "xGNU")
+ if (CMAKE_CXX_COMPILER_CLANG_RESOURCE_DIR)
+ set(_clang_scan_deps_resource_dir
+ " -resource-dir \"${CMAKE_CXX_COMPILER_CLANG_RESOURCE_DIR}\"")
+ else()
+ set(_clang_scan_deps_resource_dir "")
+ endif ()
if (CMAKE_HOST_WIN32)
# `rename` doesn't overwrite and doesn't retry in case of "target file is
# busy".
@@ -45,6 +51,7 @@ if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 16.0)
" --"
" <CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS>"
" -x c++ <SOURCE> -c -o <OBJECT>"
+ "${_clang_scan_deps_resource_dir}"
" -MT <DYNDEP_FILE>"
" -MD -MF <DEP_FILE>"
# Write to a temporary file. If the scan fails, we do not want to update
@@ -55,6 +62,7 @@ if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 16.0)
# analogous to `ninja`'s `restat = 1`. It would also leave behind the
# `.tmp` file.
" && ${_clang_scan_deps_mv} <DYNDEP_FILE>.tmp <DYNDEP_FILE>")
+ unset(_clang_scan_deps_resource_dir)
unset(_clang_scan_deps_mv)
set(CMAKE_CXX_MODULE_MAP_FORMAT "clang")
set(CMAKE_CXX_MODULE_MAP_FLAG "@<MODULE_MAP_FILE>")