有可能不在cmake中生成ALL_BUILD项目吗?

时间:2018-03-02 12:51:37

标签: cmake cmake-gui

我不需要ALL_BUILD子项目,我可以避免生成它吗?感谢名单。

2 个答案:

答案 0 :(得分:3)

CMake Issue #16979: "ALL_BUILD target being generated"

  

ALL_BUILD目标对应于CMake的“所有”目标概念,相当于使用makefile生成器。这与“构建解决方案”行为不同,原因在于VS IDE如何处理vcxproj之间的依赖关系。

     

无法取消ALL_BUILD目标。它必须存在于cmake --build之类的命令中。能够默认构建“所有”目标。

所以你无法避免它 - 就像@arrowd的答案一样 - 但是CMake中有些东西会影响它的使用/外观(在像Visual Studio这样的IDE生成器上):

  1. 激活全局USE_FOLDERS属性

    set_property(GLOBAL PROPERTY USE_FOLDERS ON)
    

    通用目标ALL_BUILDZERO_CHECKINSTALLPACKAGERUN_TESTS将被归为CMakePredefinedTargets文件夹(或任何名称)在全局PREDEFINED_TARGETS_FOLDER属性中给出。

    enter image description here

  2. 全局变量CMAKE_SKIP_INSTALL_ALL_DEPENDENCYCMAKE_SKIP_PACKAGE_ALL_DEPENDENCY会对INSTALLPACKAGE ALL_BUILD目标的ALL_BUILD<li class="nav-item"><li>自动生成依赖关系。

  3. 全局VS_STARTUP_PROJECT属性可用于将默认启动项目名称更改为a或“不在子文件夹中的第一个项目”目标以外的其他名称。

  4. <强>参考

答案 1 :(得分:2)

它对应于all制作目标,因此,不,您无法避免生成它。但是,您可以手动将其从解决方案中删除。