From d8cf8380fb9a539b3b2b6876f2eb34fc9bddbdac Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 3 Apr 2019 12:03:49 -0400 Subject: MSVC: Fix MSVC_TOOLSET_VERSION for VS 2019 v142 toolset This was forgotten in commit 626c51f47b (VS: Update for Visual Studio 2019 Preview 2, 2019-01-24, v3.14.0-rc1~74^2) when the toolset was first renumbered to `v142`. Issue: #19125 --- Modules/Platform/Windows-MSVC.cmake | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Modules/Platform/Windows-MSVC.cmake b/Modules/Platform/Windows-MSVC.cmake index 2daf313..a6448a0 100644 --- a/Modules/Platform/Windows-MSVC.cmake +++ b/Modules/Platform/Windows-MSVC.cmake @@ -71,7 +71,10 @@ if(NOT MSVC_VERSION) message(FATAL_ERROR "MSVC compiler version not detected properly: ${_compiler_version}") endif() - if(MSVC_VERSION GREATER_EQUAL 1910) + if(MSVC_VERSION GREATER_EQUAL 1920) + # VS 2019 or greater + set(MSVC_TOOLSET_VERSION 142) + elseif(MSVC_VERSION GREATER_EQUAL 1910) # VS 2017 or greater set(MSVC_TOOLSET_VERSION 141) elseif(MSVC_VERSION EQUAL 1900) -- cgit v0.12 From 33ee7793300f6ef9f5206e5a0539c192affa3d23 Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 3 Apr 2019 12:06:37 -0400 Subject: IRSL: Fix discovery of VS 2019 v142 toolset redistributables Since VS 2017's v141 toolset there is no longer a simple equation to calculate the redist name, dll version, and VS IDE version from just the MSVC toolset version. Refactor the logic to use hard-coded values and warn when a new version is not supported. Fixes: #19125 --- Modules/InstallRequiredSystemLibraries.cmake | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/Modules/InstallRequiredSystemLibraries.cmake b/Modules/InstallRequiredSystemLibraries.cmake index 5ba8687..2f34a7a 100644 --- a/Modules/InstallRequiredSystemLibraries.cmake +++ b/Modules/InstallRequiredSystemLibraries.cmake @@ -210,20 +210,25 @@ if(MSVC) set(_MSVC_IDE_VERSION "") if(MSVC_VERSION GREATER_EQUAL 2000) message(WARNING "MSVC ${MSVC_VERSION} not yet supported.") - elseif(MSVC_TOOLSET_VERSION) - set(MSVC_REDIST_NAME VC${MSVC_TOOLSET_VERSION}) + elseif(MSVC_VERSION_VERSION GREATER_EQUAL 143) + message(WARNING "MSVC toolset v${MSVC_VERSION_VERSION} not yet supported.") + elseif(MSVC_TOOLSET_VERSION EQUAL 142) + # FIXME: VS 2019 RC 4 uses VC141 but an update will fix it to be VC142. + set(MSVC_REDIST_NAME VC141) + set(_MSVC_DLL_VERSION 140) + set(_MSVC_IDE_VERSION 16) + elseif(MSVC_TOOLSET_VERSION EQUAL 141) + set(MSVC_REDIST_NAME VC141) + set(_MSVC_DLL_VERSION 140) + set(_MSVC_IDE_VERSION 15) if(MSVC_VERSION EQUAL 1910) # VS2017 named this differently prior to update 3. set(MSVC_REDIST_NAME VC150) endif() - + elseif(MSVC_TOOLSET_VERSION) + set(MSVC_REDIST_NAME VC${MSVC_TOOLSET_VERSION}) math(EXPR _MSVC_DLL_VERSION "${MSVC_TOOLSET_VERSION} / 10 * 10") - - if(MSVC_TOOLSET_VERSION EQUAL 141) - set(_MSVC_IDE_VERSION 15) - else() - math(EXPR _MSVC_IDE_VERSION "${MSVC_TOOLSET_VERSION} / 10") - endif() + math(EXPR _MSVC_IDE_VERSION "${MSVC_TOOLSET_VERSION} / 10") endif() set(_MSVCRT_DLL_VERSION "") -- cgit v0.12