1. 查看当前CMAKE中所有的变量的值的代码
get_cmake_property(_variableNames VARIABLES)
foreach(_variableName ${_variableNames})
message(STATUS "${_variableName}=${${_variableName}}")
endforeach()
CMAKE_CURRENT_LIST_DIR
存储着当前处理的lists文件所在的目录
2. 如果要在子目录中添加CMakeLists.txt
子目录中编译的目标使用的第三方库,可以在总目录中配置好。
比如目录A中有一个CMakeLists.txt,该文件中使用了add_subdirectory(example)添加子目录example到项目中。子目录example的CMakeLists.txt中添加了编译目标(add_executable),并且在前面几行写了需要第三方库find_package(Sophus required),那么可以在目录A的CMakeLists.txt中设置set(Sophus_DIR xxxxxx)来引导cmake查找Sophus库的位置。
3.CUDACXX和CMAKE_CUDA_COMPILER
原始文档地址https://cmake.org/cmake/help/latest/envvar/CUDACXX.html
CUDACXX是CMake的环境变量,其初始值是从调用进程环境中得来的。适用于编译CUDA语言可执行文件。仅在第一次配置中用于CMake确定CUDA编译器,CUDA的值保存在缓存中,条目为CMAKE_CUDA_COMPILER。
也就是环境变量中需要有CUDACXX这一条变量,不然会报No CMAKE_CUDA_COMPILER could be found错误,在Clion编译某个项目时我遇到了这个错误,解决方法是:去File->settings->Build->CMake中最下面一行添加上环境变量CUDACXX=xxxxx(你的CUDA的nvcc的路径),然后Tools->CMake->Reset Cache and Reload Project就行。