最佳答案
CMAKE _ CURRENT _ SOURCE _ DIR 这是当前处理的 CMakeLists.txt 所在的目录
CMAKE _ CURRENT _ LIST _ DIR (从2.8.3开始)这是当前正在处理的 listfile 的目录。
CMAKE _ CURRENT _ SOURCE _ DIR: 当前正在处理的源目录的路径。 这是 cmake 当前正在处理的源目录的完整路径。
CMAKE _ CURRENT _ LIST _ DIR: 当前正在处理的 listfile 的完整目录。 当 CMake 处理项目中的 listfiles 时,这个变量将始终设置为当前正在处理的 listfile (CMAKE _ CURRENT _ LIST _ FILE)所在的目录。该值具有动态范围。当 CMake 开始处理源文件中的命令时,它将这个变量设置为该文件所在的目录。当 CMake 完成对文件的处理命令后,它将恢复以前的值。因此,宏或函数中变量的值是调用调用堆栈最底层条目的文件的目录,而不是包含宏或函数定义的文件的目录。
在什么情况下,这些变量会保存不同的值?