2014-11-27 13 views
43

Stworzyłem prostą CMakeLists.txt:Co to są ALL_BUILD i ZERO_CHECK i czy ich potrzebuję?

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

Kiedy generuje VS2012 lub VS2010 projektu z CMake jednak, mam te 2 dodatkowe wpisy - ALL_BUILD i ZERO_CHECK. Nie rozumiem ich celu, czy ich potrzebuję?

enter image description here

Odpowiedz

45

Po pewnym więcej poszukiwań, znalazłem odpowiedź na https://cmake.org/pipermail/cmake/2008-November/025448.html:

Armin Berres - 11/22/2008, 15:12:41

ZERO_CHECK zostanie powtórzona cmake . Możesz/powinieneś wykonać to po zmieniając coś na twoich plikach CMake.

ALL_BUILD to po prostu cel, który buduje wszystko i wszystko projekt w aktywnym rozwiązaniu, myślę, że można go porównać do "make all".

+0

ALL_BUILD niekoniecznie buduje wszystkie projekty. Zobacz https://cmake.org/cmake/help/latest/prop_dir/EXCLUDE_FROM_ALL.html –

13

dodaj tę linię do ciebie CMakeLists.txt, aby wyłączyć generowanie ZERO_CHECK.

set(CMAKE_SUPPRESS_REGENERATION true) 
+2

Fajnie o tym nie wiedziałem. Próbowałem CMAKE_SUPPRESS_REGENERATION: Bool = 1 w CMakeCache.txt i to też działa. Dzięki – Arnaud

+0

Należy zauważyć, że z jakiegoś powodu musi to być ustawione w najwyższym "CMakeLists.txt", nie będzie działać w podkatalogach (jak CMake 3.10) – kralyk

Powiązane problemy