2014-11-27 12 views
43

Tôi đã tạo một CMakeLists.txt đơn giản:ALL_BUILD và ZERO_CHECK là gì và tôi có cần chúng không?

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

Khi tôi tạo ra một dự án VS2012 hoặc VS2010 từ CMake, tuy nhiên, tôi có được những thêm 2 mục - ALL_BUILD và ZERO_CHECK. Tôi không hiểu mục đích của họ, tôi có cần chúng không?

enter image description here

Trả lời

45

Sau khi một số tìm kiếm nhiều hơn, tôi tìm thấy câu trả lời ở https://cmake.org/pipermail/cmake/2008-November/025448.html:

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

ZERO_CHECK sẽ chạy lại cmake . Bạn có thể/nên thực hiện việc này sau khi thay đổi điều gì đó trên các tệp CMake của bạn.

ALL_BUILD chỉ đơn giản là mục tiêu xây dựng tất cả và mọi thứ dự án trong giải pháp hoạt động, tôi đoán người ta có thể so sánh nó để "tạo tất cả".

+0

ALL_BUILD không nhất thiết phải xây dựng tất cả các dự án. Xem https://cmake.org/cmake/help/latest/prop_dir/EXCLUDE_FROM_ALL.html –

13

thêm dòng này vào cho bạn CMakeLists.txt để chặn thế hệ ZERO_CHECK.

set(CMAKE_SUPPRESS_REGENERATION true) 
+2

Tôi không biết điều đó. Tôi đã thử CMAKE_SUPPRESS_REGENERATION: Bool = 1 trong CMakeCache.txt và nó cũng hoạt động. Cảm ơn – Arnaud

+0

Cần lưu ý rằng vì một số lý do này cần phải được đặt trong 'CMakeLists.txt' cấp cao nhất, nó sẽ không hoạt động trong các thư mục con (như CMake 3.10) – kralyk

Các vấn đề liên quan