个人使用的cmake模板,基本思想就是:设定编译参数/条件->设定源码->设定头文件目录和库的目录->生成动静态库(非必须)->生成可执行文件->最后进行链接
#输出编译状态可以用一下的语句插入
#message(STATUS "PROJECT_BINARY_DIR: " ${PROJECT_BINARY_DIR})
#最低cmake版本
cmake_minimum_required(VERSION 3.7)
#工程名
project(name)
#参数:${PROJECT_NAME}=name
#设定编译参数
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_FLAGS -Ifpc)
#等等
#设定源码列表.cpp
set(SOURCE_FILES main.cpp)
#设定所有源码列表 :aux_source_directory(<dir> <variable>)
#设定头文件路径
include_directories(/usr/include/)
#include_directories("路径1" “路径2”...)
#设定链接库的路径(一般使用第三方非系统目录下的库)
link_directories(/usr/lib/)
#link_directories("路径1" “路径2”...)
#添加子目录,作用相当于进入子目录里面,展开子目录的CMakeLists.txt
#同时执行,子目录中的CMakeLists.txt一般是编译成一个库,作为一个模块
#在父目录中可以直接引用子目录生成的库
add_subdirectory(math)
#生成动/静态库
add_library( 动/静态链接库名称 SHARED/STATIC(可选,默认STATIC) 源码列表 )
#可以单独生成多个模块
#生成可执行文件
add_executable( 文件名 源码列表 )
#比如:add_executable( hello_world ${SOURCE_FILES} )
target_link_libraries( 文件名 需要链接的动/静态库名 )
#可分开写,也可一次写完
参考资料:CMake入门实战