CMAKE_VS_PLATFORM_NAME не заполнено - PullRequest
       21

CMAKE_VS_PLATFORM_NAME не заполнено

0 голосов
/ 14 сентября 2018

У меня есть следующий блок в моем 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 при запуске конфигурации.

enter image description here

Теперь все работает нормально, за исключением того, что CMAKE_VS_PLATFORM_NAME теперь возвращает пустое значение, независимо от того, является ли набор инструментов v140 или v141. Так что всегда идет к блоку ELSE () в коде CMAKE для построения 64-битной. Как мне получить название платформы сейчас?

1 Ответ

0 голосов
/ 27 сентября 2018

Хорошо, я наконец понял это.

message(STATUS "${CMAKE_VS_PLATFORM_NAME}")
project (TestProject)
message(STATUS "${CMAKE_VS_PLATFORM_NAME}")

Первая команда сообщения печатается пустой.Второй печатает x64.Он имеет значение только после определения имени проекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...