Du Wiki :
CMAKE_CURRENT_SOURCE_DIR il s'agit du répertoire dans lequel se trouve le fichier CMakeLists.txt actuellement traité
CMAKE_CURRENT_LIST_DIR (depuis 2.8.3) c'est le répertoire du fichier de liste en cours de traitement.
De la part des docteurs :
CMAKE_CURRENT_SOURCE_DIR : Le chemin d'accès au répertoire source en cours de traitement. C'est le chemin complet vers le répertoire source qui est actuellement traité par cmake.
CMAKE_CURRENT_LIST_DIR : Répertoire complet du fichier de liste en cours de traitement. Au fur et à mesure que CMake traite les fichiers de liste de votre projet, cette variable sera toujours définie comme le répertoire où se trouve le fichier de liste en cours de traitement (CMAKE_CURRENT_LIST_FILE). La valeur a une portée dynamique. Lorsque CMake commence à traiter les commandes dans un fichier source, il définit cette variable dans le répertoire où se trouve ce fichier. Lorsque CMake termine le traitement des commandes du fichier, il restaure la valeur précédente. Par conséquent, la valeur de la variable à l'intérieur d'une macro ou d'une fonction est le répertoire du fichier invoquant l'entrée la plus basse de la pile d'appels, et non le répertoire du fichier contenant la définition de la macro ou de la fonction.
Dans quelles circonstances ces variables auraient-elles des valeurs différentes ?