mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-16 22:37:30 +08:00
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
This commit is contained in:
@@ -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 "")
|
||||
|
Reference in New Issue
Block a user