从Wiki:
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完成文件中的命令处理后,它将恢复以前的值。因此,宏或函数中变量的值是调用调用堆栈最底部条目的文件的目录,而不是包含宏或函数定义的文件的目录。
在什么情况下这些变量将具有不同的值?
./
有何不同?