我不需要 ALL_BUILD 子项目,我可以避免生成它吗?谢谢。
CMake 问题 #16979:“正在生成 ALL_BUILD 目标” https://gitlab.kitware.com/cmake/cmake/issues/16979:
The ALL_BUILD
target 对应于 CMake 的“all”目标概念,相当于使用 makefile 生成器 make all。由于 VS IDE 处理 vcxproj 间依赖关系的方式不同,这与“构建解决方案”行为不同。
没有办法抑制ALL_BUILD
目标。对于像这样的命令它必须存在cmake --build
。能够默认构建“all”目标。
所以你无法避免它 - 就像 @arrowd 答案一样 - 但 CMake 中的一些内容可能会影响它的使用/外观(在 Visual Studio 等 IDE 生成器上):
-
当您激活全局USE_FOLDERS https://cmake.org/cmake/help/latest/prop_gbl/USE_FOLDERS.html财产
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
通用目标ALL_BUILD
, ZERO_CHECK
, INSTALL
, PACKAGE
and RUN_TESTS
将被分组为CMakePredefinedTargets
文件夹(或全局中指定的名称)PREDEFINED_TARGETS_FOLDER https://cmake.org/cmake/help/latest/prop_gbl/PREDEFINED_TARGETS_FOLDER.html财产)。
-
全局变量CMAKE_SKIP_INSTALL_ALL_DEPENDENCY
and CMAKE_SKIP_PACKAGE_ALL_DEPENDENCY
抑制否则自动生成的依赖关系INSTALL
or PACKAGE
to the ALL_BUILD
target.
-
全球VS_STARTUP_PROJECT https://cmake.org/cmake/help/latest/prop_dir/VS_STARTUP_PROJECT.html属性可用于将默认启动项目名称更改为除ALL_BUILD
或“第一个项目不在子文件夹中”目标。
参考
- 什么是 ALL_BUILD 和 ZERO_CHECK?我需要它们吗? https://stackoverflow.com/questions/27175754/what-are-all-build-and-zero-check-and-do-i-need-them
- 如何跳过对包目标的所有依赖? https://stackoverflow.com/questions/43609677/how-to-skip-dependency-on-all-for-package-target
- 使用解决方案文件夹时没有 CMakePredefinedTargets https://stackoverflow.com/questions/36149962/no-cmakepredefinedtargets-when-using-solution-folders
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)