【发布时间】:2018-03-02 12:51:36
【问题描述】:
我不需要 ALL_BUILD 子项目,我可以避免生成它吗?谢谢。
【问题讨论】:
我不需要 ALL_BUILD 子项目,我可以避免生成它吗?谢谢。
【问题讨论】:
CMake Issue #16979: "ALL_BUILD target being generated":
ALL_BUILD目标对应于 CMake 的“all”目标概念,相当于使用 makefile 生成器生成所有目标。由于 VS IDE 处理 vcxproj 间依赖关系的方式不同,这与“构建解决方案”行为不同。没有办法抑制
ALL_BUILD目标。对于cmake --build之类的命令,它必须存在。能够默认构建“all”目标。
所以你无法避免它 - 就像 @arrowd 的答案一样 - 但 CMake 中有一些东西会影响它的使用/外观(在 Visual Studio 等 IDE 生成器上):
当您激活全局USE_FOLDERS 属性时
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
通用目标 ALL_BUILD、ZERO_CHECK、INSTALL、PACKAGE 和 RUN_TESTS 将被分组到 CMakePredefinedTargets 文件夹(或全局 PREDEFINED_TARGETS_FOLDER 属性中给出的任何名称)。
全局变量 CMAKE_SKIP_INSTALL_ALL_DEPENDENCY 和 CMAKE_SKIP_PACKAGE_ALL_DEPENDENCY 会抑制 INSTALL 或 PACKAGE 对 ALL_BUILD 目标的自动生成依赖项。
全局 VS_STARTUP_PROJECT 属性可用于将默认启动项目名称更改为 ALL_BUILD 或“不在子文件夹中的第一个项目”目标以外的名称。
参考文献
【讨论】:
它对应于all make 目标,所以,不,你无法避免生成它。不过,您可以手动将其从解决方案中删除。
【讨论】: