From 10f300697837981be3d2807c15eced3c3afcdc19 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Fri, 24 Nov 2017 12:01:43 +0100 Subject: [PATCH] [CMAKE/CLANG-CL] Force clang-cl's identity to be MSVC instead of the default Clang one as the latter results in skipping several MSVC related CMake checks/tasks. CORE-11799 --- toolchain-msvc.cmake | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/toolchain-msvc.cmake b/toolchain-msvc.cmake index 6028e61493b..c94493bf7de 100644 --- a/toolchain-msvc.cmake +++ b/toolchain-msvc.cmake @@ -14,8 +14,15 @@ set(CMAKE_SYSTEM_NAME Windows) set(CMAKE_SYSTEM_PROCESSOR i686) # which compilers to use for C and C++ +# clang-cl gets detected as "Clang" instead of "MSVC" so we force it here if(USE_CLANG_CL) - set(CMAKE_C_COMPILER clang-cl) + include(CMakeForceCompiler) + CMAKE_FORCE_C_COMPILER(clang-cl MSVC) + set(CMAKE_C_COMPILER_VERSION "16.00.40219.01") + if(ARCH STREQUAL "i386") + set(MSVC_C_ARCHITECTURE_ID "X86") + endif() + include(${CMAKE_ROOT}/Modules/CMakeClDeps.cmake) else() set(CMAKE_C_COMPILER cl) endif() @@ -25,7 +32,8 @@ if(ARCH STREQUAL "arm") CMAKE_FORCE_CXX_COMPILER(cl MSVC) else() if(USE_CLANG_CL) - set(CMAKE_CXX_COMPILER clang-cl) + include(CMakeForceCompiler) + CMAKE_FORCE_CXX_COMPILER(clang-cl MSVC) else() set(CMAKE_CXX_COMPILER cl) endif()