VS: Fix support for v142 toolset minor versions

When using `-T v142,version=14.22` the `.props` file location is
different starting with version `14.20` than it was in `14.16` and
below.  Adapt the path based on the version.

Fixes: #19779
This commit is contained in:
Brad King 2019-10-01 11:23:12 -04:00
parent 6fb747a01c
commit 5117389931
2 changed files with 10 additions and 2 deletions

View File

@ -284,7 +284,13 @@ Id flags: ${testflags} ${CMAKE_${lang}_COMPILER_ID_FLAGS_ALWAYS}
set(id_cl icl.exe)
endif()
if(CMAKE_VS_PLATFORM_TOOLSET_VERSION)
set(id_toolset_version_props "<Import Project=\"${CMAKE_GENERATOR_INSTANCE}\\VC\\Auxiliary\\Build\\${CMAKE_VS_PLATFORM_TOOLSET_VERSION}\\Microsoft.VCToolsVersion.${CMAKE_VS_PLATFORM_TOOLSET_VERSION}.props\" />")
if(CMAKE_VS_PLATFORM_TOOLSET_VERSION VERSION_GREATER_EQUAL "14.20")
set(id_sep ".")
else()
set(id_sep "\\")
endif()
set(id_toolset_version_props "<Import Project=\"${CMAKE_GENERATOR_INSTANCE}\\VC\\Auxiliary\\Build${id_sep}${CMAKE_VS_PLATFORM_TOOLSET_VERSION}\\Microsoft.VCToolsVersion.${CMAKE_VS_PLATFORM_TOOLSET_VERSION}.props\" />")
unset(id_sep)
endif()
endif()
else()

View File

@ -390,7 +390,9 @@ std::string cmGlobalVisualStudioVersionedGenerator::GetAuxiliaryToolset() const
GetVSInstance(instancePath);
std::stringstream path;
path << instancePath;
path << "/VC/Auxiliary/Build/";
path << "/VC/Auxiliary/Build";
path << (cmSystemTools::VersionCompareGreaterEq(version, "14.20") ? '.'
: '/');
path << version;
path << "/Microsoft.VCToolsVersion." << version << ".props";