Diferença entre CMAKE_CURRENT_SOURCE_DIR e CMAKE_CURRENT_LIST_DIR

Do Wiki:

CMAKE_CURRENT_SOURCE_DIR este é o diretório no qual o CMakeLists.txt atualmente processado está localizado

CMAKE_CURRENT_LIST_DIR (desde 2.8.3) este é o diretório do listfile atualmente sendo processado.

Do Documentos:

CMAKE_CURRENT_SOURCE_DIR: O caminho para o diretório de origem que está sendo processado atualmente. Este é o caminho completo para o diretório de origem que está sendo processado atualmente pelo cmake.

CMAKE_CURRENT_LIST_DIR: Diretório completo do listfile atualmente sendo processado. Como o CMake processa os listfiles em seu projeto, esta variável sempre será definida no diretório onde o arquivo de lista que está sendo processado (CMAKE_CURRENT_LIST_FILE) está localizado. O valor tem escopo dinâmico. Quando o CMake inicia o processamento de comandos em um arquivo de origem, ele configura essa variável para o diretório em que esse arquivo está localizado. Quando o CMake termina de processar os comandos do arquivo, restaura o valor anterior. Portanto, o valor da variável dentro de uma macro ou função é o diretório do arquivo invocando a entrada mais abaixo na pilha de chamadas, não o diretório do arquivo que contém a definição de macro ou função.

Em que circunstâncias essas variáveis ​​teriam valores diferentes?

questionAnswers(1)

yourAnswerToTheQuestion