1. 背景
在看sel4编译过程的时候,发现使用cmake构建的编译系统,因此本文记录cmake相关语法,方便后续快速查看。
2. cmake工具
2.1 查看cmake版本
cmake --version
显示:cmake version 3.10.2
2.2 查看cmake安装位置
which cmake
显示:/usr/bin/cmake
2.3 切换高版本cmake
export PATH=/usr/cmake-3.23.0-linux-x86_64/bin:$PATH cmake --version
显示版本:cmake version 3.23.0
which cmake
显示修改后路径:/usr/cmake-3.23.0-linux-x86_64/bin/cmake
3. 语法
3.1 cmake_minimum_required(VERSION 3.7.2)
表示编译系统需要的cmake版本最低是3.7.2,由于我的系统默认cmake版本是3.10.2,我做了一个升级,别的地方需要更高的cmake版本。
3.2 include(settings.cmake)
包含其他的 cmake 文件,被包含的文件一般以 cmake结尾
3.3 project(sel4test C CXX ASM)
项目名字:sel4test
支持编程语言:c c++ ASM
3.4 find_package(seL4 REQUIRED)
寻找FindseL4.cmake 文件
./kernel/FindseL4.cmake
3.5 set(KernelRootCNodeSizeBits 13 CACHE INTERNAL “”)
变量设置,将KernelRootCNodeSizeBits设置成13
3.6 message
向终端用户输出自定义信息,主要包含 3 种信息:
- SEND_ERROR 生产错误,生成过程被跳过;
- STATUS 输出前缀为 – 的信息;
- FATAL_ERROR 立即终止所有 cmake 过程。
实例:
message(STATUS "binary dir ${sel4test_BINARY_DIR}") message(STATUS "source dir ${sel4test_SOURCE_DIR}")
3.7 cmake cache scripts
CMake缓存脚本提供预配置选项的子集,允许项目用户避免手动设置每个选项。缓存脚本的文件扩展名为.cmake。
项目可以提供缓存脚本文件,每个文件都包含配置单个功能或选项所需的缓存设置。通过组合多个.cmake文件,可以以特定的方式初始化项目。缓存脚本配置是通过在初始化构建目录时将-C<file>传递给cmake来提供的。