【问题标题】:Is it possible not to generate ALL_BUILD project in cmake?是否可以不在 cmake 中生成 ALL_BUILD 项目?
【发布时间】:2018-03-02 12:51:36
【问题描述】:

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

【问题讨论】:

    标签: cmake cmake-gui


    【解决方案1】:

    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 生成器上):

    1. 当您激活全局USE_FOLDERS 属性时

       set_property(GLOBAL PROPERTY USE_FOLDERS ON)
      

      通用目标 ALL_BUILDZERO_CHECKINSTALLPACKAGERUN_TESTS 将被分组到 CMakePredefinedTargets 文件夹(或全局 PREDEFINED_TARGETS_FOLDER 属性中给出的任何名称)。

    2. 全局变量 CMAKE_SKIP_INSTALL_ALL_DEPENDENCYCMAKE_SKIP_PACKAGE_ALL_DEPENDENCY 会抑制 INSTALLPACKAGEALL_BUILD 目标的自动生成依赖项。

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

    参考文献

    【讨论】:

    • 有没有办法让“当前选择”成为默认启动项目?
    【解决方案2】:

    它对应于all make 目标,所以,不,你无法避免生成它。不过,您可以手动将其从解决方案中删除。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-11
      • 1970-01-01
      • 1970-01-01
      • 2017-12-30
      • 1970-01-01
      • 2012-10-25
      相关资源
      最近更新 更多