2014-11-27 7 views
43

Я создал простой CMakeLists.txt:Что такое ALL_BUILD и ZERO_CHECK и нужны ли они мне?

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

Когда я генерировать VS2012 или VS2010 проект с CMake, однако, я получаю эти 2 дополнительные записи - ALL_BUILD и ZERO_CHECK. Я не понимаю их цель, они мне нужны?

enter image description here

ответ

45

После еще некоторых поисков, я нашел ответ на https://cmake.org/pipermail/cmake/2008-November/025448.html:

Armin Berres - 11/22/2008, 3:12:41 PM

ZERO_CHECK будет перезапускать CMake , Вы можете/должны выполнить это после того, как что-то изменит в ваших файлах CMake.

ALL_BUILD - это просто цель, которая строит все и вся проект в активном решении, я думаю, можно сравнить его с «make all».

+0

ALL_BUILD не обязательно создает все проекты. См. Https://cmake.org/cmake/help/latest/prop_dir/EXCLUDE_FROM_ALL.html –

13

добавьте эту строку в ваш CMakeLists.txt, чтобы подавить генерацию ZERO_CHECK.

set(CMAKE_SUPPRESS_REGENERATION true) 
+2

Прохладный, я этого не знал. Я попробовал CMAKE_SUPPRESS_REGENERATION: Bool = 1 в CMakeCache.txt, и он тоже работает. Спасибо – Arnaud

+0

Следует отметить, что по какой-то причине это необходимо установить в верхнем уровне 'CMakeLists.txt', он не будет работать в подкаталогах (как и у CMake 3.10) – kralyk

Смежные вопросы