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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有可能不在cmake中生成ALL_BUILD项目吗?相关的知识,希望对你有一定的参考价值。

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

答案

CMake Issue #16979: "ALL_BUILD target being generated"

ALL_BUILD目标对应于CMake的“所有”目标概念,相当于使用makefile生成器。这与“构建解决方案”行为不同,因为VS IDE处理inter-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确实抑制了INSTALLPACKAGEALL_BUILD目标的自动生成依赖性。
  3. 全局VS_STARTUP_PROJECT属性可用于将默认启动项目名称更改为ALL_BUILD或“不在子文件夹中的第一个项目”目标以外的其他名称。

参考

另一答案

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

以上是关于有可能不在cmake中生成ALL_BUILD项目吗?的主要内容,如果未能解决你的问题,请参考以下文章

CMake 没有生成 Make 文件

CMake中生成的文件的运行时依赖关系

在CMake中生成命令后执行命令

我可以在 Eclipse 的项目资源管理器中生成文件吗?

有啥方法可以不在 Rails 中生成迁移文件

如何使用cmake强制UIC在源目录中生成ui_mainwindow.h