Wie würden Sie mit cmake In-Source-Builds deaktivieren?
Ich möchte verhindern, dass Leute unseren Quellbaum mit generierten CMake-Dateien überladen ... und, was noch wichtiger ist, dass sie nicht auf bestehende Dateien zugreifen könnenMakefiles
Das ist nicht Teil des gleichen Build-Prozesses, für den wir CMake verwenden. (am besten nicht fragen)
Die Art und Weise, wie ich darauf gekommen bin, besteht darin, ein paar Zeilen am oberen Rand zu habenCMakeLists.txt
, wie folgt:
if("${PROJECT_SOURCE_DIR}" STREQUAL "${PROJECT_BINARY_DIR}")
message(SEND_ERROR "In-source builds are not allowed.")
endif("${PROJECT_SOURCE_DIR}" STREQUAL "${PROJECT_BINARY_DIR}")
Dies scheint jedoch zu ausführlich zu sein. Wenn ich einen In-Source-Build ausprobiere, erstellt er außerdem immer noch denCMakeFiles/
Verzeichnis und dieCMakeCache.txt
Datei im Quellbaum, bevor der Fehler ausgelöst wird.
Vermisse ich einen besseren Weg, dies zu tun?