Z Wiki:
CMAKE_CURRENT_SOURCE_DIR to jest katalog, w którym znajduje się aktualnie przetwarzany plik CMakeLists.txt
CMAKE_CURRENT_LIST_DIR (od 2.8.3) jest to katalog aktualnie przetwarzanego pliku listy.
Z Dokumentów:
CMAKE_CURRENT_SOURCE_DIR: ścieżka do aktualnie przetwarzanego katalogu źródłowego. To pełna ścieżka do katalogu źródłowego, który jest obecnie przetwarzany przez cmake.
CMAKE_CURRENT_LIST_DIR: Pełny katalog aktualnie przetwarzanego pliku listy. Ponieważ CMake przetwarza pliki list w twoim projekcie, ta zmienna będzie zawsze ustawiona na katalog, w którym znajduje się plik listy, który jest obecnie przetwarzany (CMAKE_CURRENT_LIST_FILE). Wartość ma zakres dynamiczny. Gdy CMake rozpoczyna przetwarzanie poleceń w pliku źródłowym, ustawia tę zmienną na katalog, w którym znajduje się ten plik. Gdy CMake kończy przetwarzanie poleceń z pliku, przywraca poprzednią wartość. Dlatego wartością zmiennej wewnątrz makra lub funkcji jest katalog pliku wywołującego najniższy wpis na stosie wywołań, a nie katalog pliku zawierającego makro lub definicję funkcji.
W jakich okolicznościach te zmienne miałyby różne wartości?
./
?