让 CMake 为 Visual Studio 中的单个源文件设置“从构建中排除”选项

ben*_*der 5 c++ cmake visual-studio

在 Visual Studio 中,每个源文件的属性页面中都有一个“从构建中排除”选项,可以将其设置为从构建中排除文件,但使其在源代码树中保持可见:

截图属性页

有没有办法用 CMake 设置该特定属性?我找到了一个VS_DEPLOYMENT_CONTENT属性并尝试过但没有成功(它似乎没有做任何事情)。

使用该属性的原因主要是为了将文件保留在项目中,以便能够从 Visual Studio 中打开和编辑它。

提前致谢!

mr *_*NAE 2

不幸的是,我也找不到如何在同一项目中使用 cmake 为某些文件设置“从构建中排除”的答案。目前,我已将所有此类文件添加到add_custom_target.

if(MSVC)
  add_custom_target(myproj.additional SOURCES ${otherHeaders} ${otherSources})
endif()
Run Code Online (Sandbox Code Playgroud)

这将在解决方案中创建一个额外的项目。该项目中的文件不会编译,我仍然可以在其中编辑和搜索。

另一种选择是设置HEADER_FILE_ONLY不应编译的源的属性:

if(MSVC)
  set_source_files_properties(${otherSources} PROPERTIES
    HEADER_FILE_ONLY TRUE
  )
endif()
Run Code Online (Sandbox Code Playgroud)

在这种情况下,文件保留在项目中,但没有任何标记 - 此类文件在外观上与编译的文件没有区别