CMAKE_VS_PLATFORM_NAME为空白

时间:2018-09-14 06:59:13

标签: windows cmake visual-studio-2017

多年以来,我的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都返回空白。因此,它总是进入CMAKE代码中的ELSE()块以构建64位。我现在如何检索平台名称?

1 个答案:

答案 0 :(得分:0)

好吧,我终于想通了。

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

第一个消息命令打印空白。第二个打印x64。仅在定义项目名称后,它才具有值。