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?

Antworten auf die Frage(7)

Ihre Antwort auf die Frage