Aus dem Wiki:
CMAKE_CURRENT_SOURCE_DIR Dies ist das Verzeichnis, in dem sich die aktuell verarbeitete CMakeLists.txt befindet
CMAKE_CURRENT_LIST_DIR (seit 2.8.3) Dies ist das Verzeichnis der aktuell verarbeiteten Listendatei.
Aus den Dokumenten:
CMAKE_CURRENT_SOURCE_DIR: Der Pfad zum Quellverzeichnis, das gerade verarbeitet wird. Dies ist der vollständige Pfad zum Quellverzeichnis, das derzeit von cmake verarbeitet wird.
CMAKE_CURRENT_LIST_DIR: Vollständiges Verzeichnis der aktuell verarbeiteten Listendatei. Während CMake die Listendateien in Ihrem Projekt verarbeitet, wird diese Variable immer auf das Verzeichnis gesetzt, in dem sich die aktuell verarbeitete Listendatei (CMAKE_CURRENT_LIST_FILE) befindet. Der Wert hat einen dynamischen Bereich. Wenn CMake mit der Verarbeitung von Befehlen in einer Quelldatei beginnt, wird diese Variable auf das Verzeichnis gesetzt, in dem sich diese Datei befindet. Wenn CMake die Verarbeitung von Befehlen aus der Datei beendet hat, wird der vorherige Wert wiederhergestellt. Daher ist der Wert der Variablen in einem Makro oder einer Funktion das Verzeichnis der Datei, die den untersten Eintrag im Aufrufstapel aufruft, nicht das Verzeichnis der Datei, die die Makro- oder Funktionsdefinition enthält.
Unter welchen Umständen würden diese Variablen unterschiedliche Werte haben?
./
?