Разница между CMAKE_CURRENT_SOURCE_DIR и CMAKE_CURRENT_LIST_DIR

Из вики:

CMAKE_CURRENT_SOURCE_DIR это каталог, в котором находится обрабатываемый в данный момент CMakeLists.txt

CMAKE_CURRENT_LIST_DIR (начиная с версии 2.8.3) это каталог обрабатываемого в данный момент списка файлов.

Из документов:

CMAKE_CURRENT_SOURCE_DIR: Путь к исходному каталогу, обрабатываемому в данный момент. Это полный путь к исходному каталогу, который в данный момент обрабатывается cmake.

CMAKE_CURRENT_LIST_DIR: Полный каталог списка файлов, обрабатываемых в данный момент. Когда CMake обрабатывает файлы списка в вашем проекте, эта переменная всегда будет установлена в каталог, где находится файл списка, который обрабатывается в данный момент (CMAKE_CURRENT_LIST_FILE). Значение имеет динамический охват. Когда CMake начинает обрабатывать команды в исходном файле, он устанавливает эту переменную в каталог, где находится этот файл. Когда CMake заканчивает обработку команд из файла, он восстанавливает предыдущее значение. Поэтому значение переменной внутри макроса или функции - это каталог файла, вызывающего самую нижнюю запись в стеке вызовов, а не каталог файла, содержащего определение макроса или функции.

При каких обстоятельствах эти переменные будут иметь разные значения?

Ответы на вопрос(1)

Ваш ответ на вопрос