Jak dokładnie działa CMake?

Nie pytam o to tylko dla siebie. Mam nadzieję, że to pytanie będzie punktem odniesienia dla wielu początkujących, którzy mnie lubią, uznało to za całkowicie kłopotliwe, co dokładnie dzieje się za kulisami, kiedy taki małyCMakeLists.txt plik

cmake_minimum_required (VERSION 2.6)
project(Tutorial)
add_executable(Tutorial tutorial.cpp)

i taki małytutorial.cpp

int main() { return 0; } 

generowanych jest tak wiele plików

CMakeCache.txt  cmake_install.cmake  Makefile
CMakeLists.txt  tutorial.cpp

i aCMakeFiles folder z tak wieloma plikami i folderami

CMakeCCompiler.cmake               CMakeOutput.log    Makefile.cmake
cmake.check_cache                  CMakeSystem.cmake  progress.marks
CMakeCXXCompiler.cmake             CMakeTmp           TargetDirectories.txt
CMakeDetermineCompilerABI_C.bin    CompilerIdC        Tutorial.dir
CMakeDetermineCompilerABI_CXX.bin  CompilerIdCXX
CMakeDirectoryInformation.cmake    Makefile2

Nie rozumienie tego, co działo się za kulisami (tj. Dlaczego pliki mogły być generowane i jaki był ich cel), było największą przeszkodą w nauce CMake.

Jeśli ktoś wie, czy mógłbyś to wyjaśnić dla dobra potomności? Jaki jest cel tych plików i kiedy piszęcmake ., co dokładnie konfiguruje i generuje cmake zanim zbuduje projekt?

questionAnswers(2)

yourAnswerToTheQuestion