Commit 33ee7793 authored by Brad King's avatar Brad King
Browse files

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
parent d8cf8380
...@@ -210,20 +210,25 @@ if(MSVC) ...@@ -210,20 +210,25 @@ if(MSVC)
set(_MSVC_IDE_VERSION "") set(_MSVC_IDE_VERSION "")
if(MSVC_VERSION GREATER_EQUAL 2000) if(MSVC_VERSION GREATER_EQUAL 2000)
message(WARNING "MSVC ${MSVC_VERSION} not yet supported.") message(WARNING "MSVC ${MSVC_VERSION} not yet supported.")
elseif(MSVC_TOOLSET_VERSION) elseif(MSVC_VERSION_VERSION GREATER_EQUAL 143)
set(MSVC_REDIST_NAME VC${MSVC_TOOLSET_VERSION}) 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) if(MSVC_VERSION EQUAL 1910)
# VS2017 named this differently prior to update 3. # VS2017 named this differently prior to update 3.
set(MSVC_REDIST_NAME VC150) set(MSVC_REDIST_NAME VC150)
endif() endif()
elseif(MSVC_TOOLSET_VERSION)
set(MSVC_REDIST_NAME VC${MSVC_TOOLSET_VERSION})
math(EXPR _MSVC_DLL_VERSION "${MSVC_TOOLSET_VERSION} / 10 * 10") math(EXPR _MSVC_DLL_VERSION "${MSVC_TOOLSET_VERSION} / 10 * 10")
math(EXPR _MSVC_IDE_VERSION "${MSVC_TOOLSET_VERSION} / 10")
if(MSVC_TOOLSET_VERSION EQUAL 141)
set(_MSVC_IDE_VERSION 15)
else()
math(EXPR _MSVC_IDE_VERSION "${MSVC_TOOLSET_VERSION} / 10")
endif()
endif() endif()
set(_MSVCRT_DLL_VERSION "") set(_MSVCRT_DLL_VERSION "")
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment