版权声明:本文为博主原创文章,转载请注明出处:https://blog.csdn.net/qq_31261509 https://blog.csdn.net/qq_31261509/article/details/82687973
废话
主要说明了一些cmake常用语法
CMake常用预定义变量
- PROJECT_SOURCE_DIR 所运行的CMakeList.txt所在文件夹下的工程目录
- CMAKE_CURRENT_SOURCE_DIR 当前处理的CMakeLists.txt所在的目录
在cmake还可以添加c++文件中的宏定义:
add_compile_definitions()
- 比如我们如果在所需编译的c++代码中调用了#ifdef CUDA,我们可以在CMakeList.txt文件中使用add_compile_definitions(CUDA)来声明C++中的宏定义.
常用的cmake语法
- 命令行中输出消息:
#输出Hello World!字符串
message("Hello World!")
- 头文件目录:
include_directories(${PROJECT_SOURCE_DIR}/include)
- 链接库目录:
link_directories(${PROJECT_SOURCE_DIR}/lib)
- 将第一个参数所赋值的目录下的所有源文件(.cpp)的文件列表赋值给第二个参数参数:
#将${PROJECT_SOURCE_DIR}/src目录下的所有源文件列表赋值给DIR_SRCS.
AUX_SOURCE_DIRECTOR(${PROJECT_SOURCE_DIR}/src DIR_SRCS)
- 将文件加下所有匹配第三个参数的字符串的文件列表赋值给第二个参数
#将src文件夹及其子文件夹下的.cpp结尾文件列表赋值给DIRS变量
file(GLOB_RECURSE DIRS "${PROJECT_SOURCE_DIR}/src/*.cpp")
- 添加库
$连接生成静态库Hello文件
add_library(Hello SHARED ${DRIS_SRCS})
- 生成CUDA可执行文件
cuda_add_executable(CNN main.cpp)
- 连接静态库与可执行文件
target_link_libraries(CNN cublas Hello glog cudart)