У меня есть следующий блок в моем CMakeLists.txt в течение многих лет, так как пара приложений зависит от старой 32-битной библиотеки сторонних производителей.
IF("${CMAKE_VS_PLATFORM_NAME}" MATCHES "Win32")
# Build 32bit stuff
ELSE()
# Build 64bit stuff
ENDIF()
Вчера я обновил VS15 до VS17. Однако мне все еще нужно сохранить некоторые старые приложения в наборе инструментов v140. Сначала я даже не смог собрать конфигурацию для v140, поскольку он не мог найти MSBuild.exe, поэтому мне пришлось установить инструменты для сборки для VS17. Мне также нужно указать набор инструментов v140 / v141 при запуске конфигурации.
Теперь все работает нормально, за исключением того, что CMAKE_VS_PLATFORM_NAME теперь возвращает пустое значение, независимо от того, является ли набор инструментов v140 или v141. Так что всегда идет к блоку ELSE () в коде CMAKE для построения 64-битной. Как мне получить название платформы сейчас?