diff --git a/Modules/Compiler/Clang-CXX.cmake b/Modules/Compiler/Clang-CXX.cmake index 7b3bd4557f..5a8bc3fda3 100644 --- a/Modules/Compiler/Clang-CXX.cmake +++ b/Modules/Compiler/Clang-CXX.cmake @@ -37,18 +37,21 @@ if((CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 16.0 AND CMAKE_CXX_COMPILER endif () if(CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC") set(_clang "-clang:") + set(_srcsep "-- ") else() set(_clang "") + set(_srcsep "") endif() string(CONCAT CMAKE_CXX_SCANDEP_SOURCE "\"${CMAKE_CXX_COMPILER_CLANG_SCAN_DEPS}\"" " -format=p1689" " --" " " - " -x c++ -c ${_clang}-o ${_clang}" + " -x c++ -c ${_clang}-o ${_clang}" "${_clang_scan_deps_resource_dir}" " ${_clang}-MT ${_clang}" " ${_clang}-MD ${_clang}-MF ${_clang}" + " ${_srcsep}" # Write to a temporary file. If the scan fails, we do not want to update # the actual output file as `ninja` (at least) assumes that failed # commands either delete or leave output files alone. See Issue#25419. @@ -62,6 +65,7 @@ if((CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 16.0 AND CMAKE_CXX_COMPILER set(CMAKE_CXX_MODULE_MAP_FORMAT "clang") set(CMAKE_CXX_MODULE_MAP_FLAG "@") set(CMAKE_CXX_COMPILE_BMI - " ${_clang}-o ${_clang} --precompile ") + " ${_clang}-o ${_clang} --precompile ${_srcsep}") unset(_clang) + unset(_srcsep) endif()