有可能不在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生成器上):
- 激活全局
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
或“不在子文件夹中的第一个项目”目标以外的其他名称。
参考
- What are ALL_BUILD and ZERO_CHECK and do I need them?
- How to skip dependency on all for package target?
- No CMakePredefinedTargets when using solution folders
另一答案
它对应于all
make目标,所以,不,你不能避免生成它。但是,您可以手动将其从解决方案中删除。
以上是关于有可能不在cmake中生成ALL_BUILD项目吗?的主要内容,如果未能解决你的问题,请参考以下文章