使用CMake添加Visual C++属性表

Ore*_*ost 18 cmake visual-studio-2010 propertysheet visual-c++

我目前正在将一个gcc项目移植到Visual C++.它是在CMake文件中定义的,我创建了一个Visual C++属性表以帮助兼容(GccCompat.props).每次Visual C++项目文件由CMake重新生成时,必须手动添加属性表,因为我不知道如何自动添加它.所以,问题是:

如何告诉CMake向生成的Visual C++解决方案添加属性表?

Mue*_*ito 8

这个功能已经成为CMake的夜间版本(https://gitlab.kitware.com/cmake/cmake/commit/e390991846825799e619e072a28f1da58b7c89ba),虽然尚未进入稳定版本.从理论上讲,它将在下一个版本中发布,并且相对频繁地发布CMake版本.

要使用,您可以VS_USER_PROPS在目标上设置属性.例如.set_target_properties(foo PROPERTIES VS_USER_PROPS "${props_file}").

但是,您似乎不能使用此选项的多个属性表,并且它将替换默认的用户属性文件($(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props).要解决此问题,属性表可以包含其他属性表,因此,您可以创建一个"主"属性表,其中包括您要使用的任何其他属性表(包括默认用户属性表).


Olh*_*hay 0

不确定您需要哪些属性。其中一些可以直接在 CMake 中设置,例如本示例中的多个配置:

set (CMAKE_CONFIGURATION_TYPES "A;B;C;D" CACHE STRING "Configurations" FORCE)

foreach( OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES} )

    set (CMAKE_CXX_FLAGS_${OUTPUTCONFIG}                "/ZI /Od")
    set (CMAKE_EXE_LINKER_FLAGS_${OUTPUTCONFIG}         "/debug")

endforeach( OUTPUTCONFIG CMAKE_CONFIGURATION_TYPES )
Run Code Online (Sandbox Code Playgroud)

除了这里列出的变量之外,我认为 CMake 不可能附加属性表。