Dal Wiki:
CMAKE_CURRENT_SOURCE_DIR questa è la directory in cui si trova il CMakeLists.txt attualmente elaborato
CMAKE_CURRENT_LIST_DIR (da 2.8.3) questa è la directory del listfile attualmente in elaborazione.
Dai documenti:
CMAKE_CURRENT_SOURCE_DIR: il percorso della directory di origine attualmente in fase di elaborazione. Questo è il percorso completo della directory di origine attualmente elaborata da cmake.
CMAKE_CURRENT_LIST_DIR: directory completa del file di elenco attualmente in fase di elaborazione. Poiché CMake elabora i file di elenco nel progetto, questa variabile sarà sempre impostata sulla directory in cui si trova il file di elenco attualmente in fase di elaborazione (CMAKE_CURRENT_LIST_FILE). Il valore ha un ambito dinamico. Quando CMake inizia a elaborare i comandi in un file di origine, imposta questa variabile sulla directory in cui si trova questo file. Quando CMake termina l'elaborazione dei comandi dal file, ripristina il valore precedente. Pertanto il valore della variabile all'interno di una macro o di una funzione è la directory del file che richiama la voce più in basso nello stack di chiamate, non la directory del file contenente la macro o la definizione della funzione.
In quali circostanze queste variabili avrebbero valori diversi?
./
?