2014-11-27 12 views
43

Ho creato un semplice CMakeLists.txt:Cosa sono ALL_BUILD e ZERO_CHECK e ne ho bisogno?

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

Quando ho generare un progetto VS2012 o VS2010 da CMake, tuttavia, ottengo questi 2 voci aggiuntive - ALL_BUILD e ZERO_CHECK. Non capisco il loro scopo, ne ho bisogno?

enter image description here

risposta

45

Dopo un po 'di più ricerca, ho trovato la risposta a https://cmake.org/pipermail/cmake/2008-November/025448.html:

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

ZERO_CHECK sarà rieseguire cmake . È possibile/dovrebbe eseguire ciò dopo modificando qualcosa nei file CMake.

ALL_BUILD è semplicemente un obiettivo che crea tutto e tutto il progetto nella soluzione attiva, suppongo che si possa paragonarlo a "fare tutto".

+0

ALL_BUILD non crea necessariamente tutti i progetti. Vedi https://cmake.org/cmake/help/latest/prop_dir/EXCLUDE_FROM_ALL.html –

13

aggiungere questa riga a CMakeLists.txt per sopprimere la generazione di ZERO_CHECK.

set(CMAKE_SUPPRESS_REGENERATION true) 
+2

Cool non lo sapevo. Ho provato CMAKE_SUPPRESS_REGENERATION: Bool = 1 in CMakeCache.txt e funziona anche. Grazie – Arnaud

+0

Va notato che per qualche motivo questo deve essere impostato nel 'CMakeLists.txt' di livello superiore, non funzionerà nelle sottodirectory (come da CMake 3.10) – kralyk

Problemi correlati