summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKonstantin Ivlev <tomskside@gmail.com>2017-09-04 08:12:43 (GMT)
committerBrad King <brad.king@kitware.com>2017-09-11 13:58:22 (GMT)
commit8a4755ca57d5a0ef664b067f6ace737b417ef40d (patch)
tree064632a4edbe51587f40dbf26fd9908edd7048b1
parentd4f58a9cd8e3709a0cb176814226da324b17e0fe (diff)
downloadCMake-8a4755ca57d5a0ef664b067f6ace737b417ef40d.zip
CMake-8a4755ca57d5a0ef664b067f6ace737b417ef40d.tar.gz
CMake-8a4755ca57d5a0ef664b067f6ace737b417ef40d.tar.bz2
VS: Update support for LLVM-vs* toolsets from LLVM 5.0
Revert commit v3.7.0-rc1~25^2 (VS: Recognize VS/LLVM toolset names as Clang, 2016-09-28). Since at least LLVM 5.0 the VS integration of the LLVM toolchain now mimics cl and accepts MSVC-style command-line arguments (unlike Microsoft Clang/C2). Fixes: #17193, #17235
-rw-r--r--Modules/Platform/Windows-MSVC.cmake4
-rw-r--r--Source/cmVisualStudio10TargetGenerator.cxx3
2 files changed, 3 insertions, 4 deletions
diff --git a/Modules/Platform/Windows-MSVC.cmake b/Modules/Platform/Windows-MSVC.cmake
index cfe6e1c..d9f213b 100644
--- a/Modules/Platform/Windows-MSVC.cmake
+++ b/Modules/Platform/Windows-MSVC.cmake
@@ -186,7 +186,7 @@ else()
if(_MSVC_C_ARCHITECTURE_FAMILY STREQUAL "ARM" OR _MSVC_CXX_ARCHITECTURE_FAMILY STREQUAL "ARM")
set(CMAKE_C_STANDARD_LIBRARIES_INIT "kernel32.lib user32.lib")
elseif(MSVC_VERSION GREATER 1310)
- if(CMAKE_VS_PLATFORM_TOOLSET MATCHES "(v[0-9]+_clang_.*|LLVM-vs[0-9]+.*)")
+ if(CMAKE_VS_PLATFORM_TOOLSET MATCHES "v[0-9]+_clang_.*")
# Clang/C2 in MSVC14 Update 1 seems to not support -fsantinize (yet?)
# set(_RTC1 "-fsantinize=memory,safe-stack")
set(_FLAGS_CXX " -frtti -fexceptions")
@@ -285,7 +285,7 @@ macro(__windows_compiler_msvc lang)
if("x${lang}" STREQUAL "xC" OR
"x${lang}" STREQUAL "xCXX")
- if(CMAKE_VS_PLATFORM_TOOLSET MATCHES "(v[0-9]+_clang_.*|LLVM-vs[0-9]+.*)")
+ if(CMAKE_VS_PLATFORM_TOOLSET MATCHES "v[0-9]+_clang_.*")
# note: MSVC 14 2015 Update 1 sets -fno-ms-compatibility by default, but this does not allow one to compile many projects
# that include MS's own headers. CMake itself is affected project too.
string(APPEND CMAKE_${lang}_FLAGS_INIT " ${_PLATFORM_DEFINES}${_PLATFORM_DEFINES_${lang}} -fms-extensions -fms-compatibility -D_WINDOWS -Wall${_FLAGS_${lang}}")
diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx
index 7fe2f2a..4a90d53 100644
--- a/Source/cmVisualStudio10TargetGenerator.cxx
+++ b/Source/cmVisualStudio10TargetGenerator.cxx
@@ -2471,8 +2471,7 @@ void cmVisualStudio10TargetGenerator::WriteClOptions(
}
if (this->MSTools) {
- cmsys::RegularExpression clangToolset(
- "(v[0-9]+_clang_.*|LLVM-vs[0-9]+.*)");
+ cmsys::RegularExpression clangToolset("v[0-9]+_clang_.*");
const char* toolset = this->GlobalGenerator->GetPlatformToolset();
if (toolset && clangToolset.find(toolset)) {
this->WriteString("<ObjectFileName>"