c++ - 让 CMake 为 Visual Studio 中的单个源文件设置 "Exclude From Build"选项

标签 c++ visual-studio cmake

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

Screenshot property page

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

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

提前致谢!

最佳答案

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

if(MSVC)
  add_custom_target(myproj.additional SOURCES ${otherHeaders} ${otherSources})
endif()

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

另一种选择是设置 HEADER_FILE_ONLY 不应编译的源的属性:
if(MSVC)
  set_source_files_properties(${otherSources} PROPERTIES
    HEADER_FILE_ONLY TRUE
  )
endif()

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

关于c++ - 让 CMake 为 Visual Studio 中的单个源文件设置 "Exclude From Build"选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51780689/

相关文章:

Android Studio 2.2.3 找不到 <vector>

c++ - 使用Doxygen记录枚举类值而不启用EXTRACT_ALL

c++ - 链接外部共享库android ndk

c++ - 如何记录从源顶点到目的顶点的所有最短路径

c++ - 基本类型的复制/分配

c# - Visual Studio - 如何在调试器中更改方法的返回值?

c# - 如何在 TrackBar 中使用 float

c++ - (C++)如何在Window程序中使用虚函数?

c++ - 具有 2 种不同类型的对象的重载运算符声明

c# - 从 VSTest.Console.exe 向单元测试传递参数或选项