CMake 是一个开源的、跨平台的编译工具。
1、CMake语法
- 变量使用${}方式取值
- 指令是大小写无关的,但是参数和变量是大小写相关的
- 注释以#开头
2、CMake命令(如下为CMU数据库系统设计bustub数据库的CMakeLists.txt文件)
- cmake_minimum_required(VERSION 3.10)
规定CMake程序的最低版本
- set命令
用来显式地定义变量
- set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
生成一个包含编译信息的JSON文件:compile_commands.json
-
set(BUILD_SHARED_LIBS ON)
值为ON,则表示add_library()创建的是共享库。即除非项目中明确说明该库为静态库,否则所有的库都被构建为共享库
-
set(CMAKE_CXX_STANDARD 17) # Compile as C++17
- set(CMAKE_CXX_STANDARD_REQUIRED ON) # Require C++17 support
指定C++编译的标准规范
- project(BusTub VERSION 2019.1 DESCRIPTION "The BusTub Relational Database Management System (Educational) @ https://github.com/cmu-db/bustub" LANGUAGES C CXX )
项目信息