1 Cmake是什么
CMake 是一个跨平台的自动化建构系统,它使用一个名为 CMakeLists.txt 的文件来描述构建过程,可以产生标准的构建文件,如 Unix 的 Makefile 或Windows Visual C++ 的 projects/workspaces 。文件 CMakeLists.txt 需要手工编写,也可以通过编写脚本进行半自动的生成。在 linux 平台下使用 CMake 生成 Makefile 并编译的流程如下:
A、编写 CmakeLists.txt。
B、执行命令“cmake PATH”或者“ccmake PATH”生成 Makefile ( PATH 是 CMakeLists.txt 所在的目录 )。
C、使用 make 命令进行编译。
1.1 Cmake命令
Cmake [options] path -G”Nmake Makefiles”:path最上层入口CmakeList.txt路径(.当前路径;…上层目录) -G制定生成哪种工程文件
2 Cmake实现
2.1 构建方式
内部构建in source:生成的中间文件与源码混在一起, cmake生成的makefile无法跟踪所有的中间文件,即无法使用”make distclean”命令将所有的中间文件删除。
外部构建out-of-source:生成中间产物与源代码分离(例如新增build目录编译构建)
2.2 框架
从顶层目录开始每一级目录下都包含CmakeLists.txt文件
使用out-of-source构建项目
2.2.1实例操作
-----------根目录CMakeLists.txt
# 最低版本要求
cmake_minimum_required(VERSION 2.6)
project(CMAKE_Test)
add_subdirectory(code)
add_executable(cmake_test ${code_source})
-----------code目录CMakeLists.txt
add_subdirectory(src)
set(code_source
${code_source_src}
PARENT_SCOPE)
-----------src目录CMakeLists.txt
include_directories(${PROJECT_SOUREC_DIR}/code/include)
add_subdirectory(