什么是ALL_BUILD和ZERO_CHECK,我需要它们吗?


77

我创建了一个简单的CMakeLists.txt:

cmake_minimum_required(VERSION 2.8)
project (HelloWorld)
add_executable (HelloWorld main.cpp)

但是,当我从CMake生成VS2012或VS2010项目时,我得到了这两个附加条目-ALL_BUILD和ZERO_CHECK。我不明白他们的目的,我需要他们吗?

在此处输入图片说明

Answers:


72

经过更多搜索后,我在https://cmake.org/pipermail/cmake/2008-November/025448.html找到了答案:

Armin Berres — 2008年11月22日,下午3:12:41

ZERO_CHECK将重新运行cmake。您可以/应该在更改CMake文件后执行此操作。

ALL_BUILD只是在活动解决方案中构建所有项目的目标,我想可以将其与“全部”进行比较。



24
零检查。伟大的命名;对于任何试图命名新技术的人来说,它都应该是一个杰出的例子。保持良好的工作CMake!
douche_satan

3
注意他们可能实际上认为该名称是直觉的哈哈!
PrimRock

28

将此行添加到CMakeLists.txt中,以禁止生成ZERO_CHECK。

set(CMAKE_SUPPRESS_REGENERATION true)

2
酷我不知道。我在CMakeCache.txt中尝试了CMAKE_SUPPRESS_REGENERATION:Bool = 1,它也可以工作。谢谢
Arnaud

1
应该注意的是,由于某种原因,这需要在顶层设置CMakeLists.txt,它不能在子目录中使用(从CMake 3.10开始)
kralyk

有没有类似的方法可以防止创建ALL_BUILD?编辑:确定,没有:gitlab.kitware.com/cmake/cmake/issues/16979
Felix Crazzolara
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.