由cmake 3.18.1生成的vcxproj缺少CompileAs选项

问题描述

当我使用cmake 3.2.1为我的项目生成.vcxproj时,它将生成<CompileAs>CompileAsCpp</CompileAs> 但是,当我尝试cmake版本3.18.1时,生成的.vcxproj文件不包含导致测试失败(代码编译)的前一行。 这是设置项目属性的cmake代码

add_library(${PROJECT_NAME} SHARED ${PROJECT_SRC})

if(CMAKE_BUILD_TOOL MATCHES "(msdev|devenv|nmake|MSBuild)")
    target_compile_options(${PROJECT_NAME} PRIVATE "/TP")
endif()

target_include_directories(${PROJECT_NAME} PRIVATE ${PUBLIC_INCLUDES} ${PRIVATE_INCLUDES} )
set_target_properties(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
set_target_properties(${PROJECT_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
set_target_properties(${PROJECT_NAME} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
set_target_properties(${PROJECT_NAME} PROPERTIES PDB_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})

我如何要求cmake生成缺少的行(<CompileAs>CompileAsCpp</CompileAs>)? 谢谢。

解决方法

我尝试使用CMake 3.18.0,它起作用了。 生成了CompileAs标记,因此我将使用此版本而不是CMake 3.18.1

谢谢。