chapter02.a - 总结常用的 CMake 变量
PROJECT_*
PROJECT_SOURCE_DIR
PROJECT_BINARY_DIR
不存在
PROJECT_LIST_DIR
。
PROJECT_*
变量会随着 project
命令的出现而变更。
CMAKE_*
CMAKE_SOURCE_DIR
CMAKE_BINARY_DIR
也不存在
CMAKE_LIST_DIR
。
和本次 cmake 命令有关。
CMAKE_CURRENT_*
通过 VS Code 补全可以看到有很多变量:
其中 LIST
和 SOURCE
的区别是:include
会直接将 cmake 文件插入进来,这个时候不会改变 SOURCE
,但是会改变 LIST
。所以为了表示文件的相对位置一般还是用 LIST 吧?
同理,函数定义处和调用处可能是不同的,想要获取函数定义处的信息,需要使用 CMAKE_CURRENT_FUNCTION_*
。