I don't need ALL_BUILD subproject, can I avoid generating it? Thanx.
2 Answers
CMake Issue #16979: "ALL_BUILD target being generated":
The
ALL_BUILD
target corresponds to CMake's notion of the "all" target, equivalent to make all with makefile generators. This is different from "Build Solution" behavior due to idiosyncrasies in how the VS IDE deals with inter-vcxproj dependencies.There is no way to suppress the
ALL_BUILD
target. It must exist for commands likecmake --build
. to be able to build the "all" target by default.
So you can't avoid it - as with @arrowd answer - but there are some things in CMake that can influence the usage/appearance (on IDE generators like Visual Studio) of it:
When you activate global
USE_FOLDERS
propertyset_property(GLOBAL PROPERTY USE_FOLDERS ON)
the generic targets
ALL_BUILD
,ZERO_CHECK
,INSTALL
,PACKAGE
andRUN_TESTS
will be grouped into theCMakePredefinedTargets
folder (or whichever name is given in globalPREDEFINED_TARGETS_FOLDER
property).The global variables
CMAKE_SKIP_INSTALL_ALL_DEPENDENCY
andCMAKE_SKIP_PACKAGE_ALL_DEPENDENCY
do suppress otherwise automatically generated dependencies forINSTALL
orPACKAGE
to theALL_BUILD
target.The global
VS_STARTUP_PROJECT
property can be used to change the default startup project name to something other than theALL_BUILD
or "first project not in sub-folder" targets.
References
-
is there a way to make "current selection" the default start project? – user1050755 Mar 11 '22 at 20:58
It corresponds to the all
make target, so, no, you can't avoid generating it. You can delete it from the solution manually, though.

- 33,231
- 8
- 79
- 110