//设置cmake支持的最低版本cmake_minimum_required (VERSION 2.6)复制代码
//配置项目名称,使用此命令后会自动生成//PNAME_BINARY_DIR变量(二进制文件保存路径),PNAME_SOURCE_DIR(源代码路径)project (工程名称)复制代码
//设置版本号SET (变量名 变量值)SET (VERSION 0) SET(SRC_LIST main.c t1.ct2.c)复制代码
//文件拷贝,并进行宏替换configure_file ( "${PROJECT_SOURCE_DIR}/TutorialConfig.h.in" "${PROJECT_BINARY_DIR}/TutorialConfig.h" ) 复制代码
//向工程添加多个特定的头文件搜索路径,路径之间用空格分隔,如果路径包含空格,//可以使用双引号将它括起来。默认的行为是追加到当前头文件搜索路径的后面。//有如下两种方式可以控制搜索路径添加的位置:CMAKE_INCLUDE_DIRECTORIES_BEFORE,//通过SET这个cmake变量为on,可以将添加的头文件搜索路径放在已有路径的前面//通过AFTER或BEFORE参数,也可以控制是追加还是置前include_directories("${PROJECT_BINARY_DIR}")复制代码
//生成可执行文件add_executable(可执行文件名 生产该可执行文件的源文件)复制代码
//添加子目录,它会去子目录中寻找CmakeLists.txt,然后执行它ADD_SUBDIRECTORY(subdir)复制代码
//将一个文件下的编译用的源文件添加到一个宏列表中,//它只是将.cc .cpp .c的文件添加到SRC_LIST中,.h除外AUX_SOURCE_DIRECTORY(. SRC_LIST)//如果你想将.h文件也加进来,使用下面脚本,GLOB这个参数,它不支持子目录,//如果你想让它支持子目录,用GLOB_RECURSE。file (GLOB HEADERS "include/*.h")SET(SRC_LIST ${SRC_LIST} ${HEADERS})复制代码
//检查一个文件或目录是否存在if(NOT EXISTS ${APR_ROOT})endif()复制代码
LINK_DIRECTORIESLINK_DIRECTORIES(dir1 dir2 …)添加非标准的共享库搜索路径复制代码
TARGET_LINK_LIBRARIESTARGET_LINK_LIBRARIES(target lib1 lib2 …)//为target添加需要链接的共享库,后面可添加域限定关键字PUBLIC PRIVATE INTERFACE//关键字的说明如下参考//https://stackoverflow.com/questions/26037954/cmake-target-link-libraries-interface-dependencies复制代码
官网教程:https://cmake.org/cmake-tutorial/
官网手册:https://cmake.org/cmake/help/v3.0/module/CMakeParseArguments.html
参考:https://www.cnblogs.com/coderfenghc/archive/2012/06/20/2556996.html