本書通過深入淺出的講解和豐富的實踐案例,幫助讀者從零開始逐步掌握CMake的用法。具體而言,本書在介紹CMake的安裝與環(huán)境配置的基礎上,通過一個簡單的案例幫助讀者快速理解CMake的構建機制;然后通過實例解析CMake腳本語法、關鍵命令,并引出靜態(tài)庫與動態(tài)庫、第三方庫的構建方法;最后,本書還介紹了CTest和CPack在測試與打包分發(fā)中的強大功能,并展現(xiàn)了CMake在CI/CD中的應用。
本書從基礎到進階,構建了完整的CMake學習路徑,既適合新手系統(tǒng)學習,也能幫助有經驗的開發(fā)者解決工程實踐中的復雜問題。
第1章 學習CMake前的準備
1.1 CMake簡介 001
1.2 CMake對集成開發(fā)環(huán)境的支持 004
1.3 CMake安裝 011
1.4 CMake和Make介紹 018
1.5 其他的構建工具介紹 021
1.6 本章小結 023
第2章 初識CMake構建
2.1 基礎實驗環(huán)境搭建 025
2.2 傳統(tǒng)構建HelloWorld的方式 026
2.3 CMake構建HelloWorld的方式 027
2.4 優(yōu)化CMakeLists.txt文件 035
2.5 本章小結 049
第3章 CMake常用語法介紹
3.1 條件判斷語法 050
3.2 循環(huán) 065
3.3 函數(shù) 070
3.4 本章小結 075
第4章 CMake字符串和文件處理
4.1 字符串處理 076
4.2 文件處理 081
4.3 本章小結 105
第5章 項目的構建
5.1 內部構建和外部構建 107
5.2 建立HelloWorld項目 109
5.3 安裝HelloWorld項目 112
5.4 生成Debug或Release版本 123
5.5 控制構建過程 125
5.6 本章小結 127
第6章 庫的構建
6.1 理解靜態(tài)庫和動態(tài)共享庫 128
6.2 使用g++傳統(tǒng)方式構建靜態(tài)庫和動態(tài)庫 130
6.3 Linux下構建靜態(tài)庫 133
6.4 Linux下構建動態(tài)共享庫 142
6.5 Windows下構建靜態(tài)或動態(tài)共享庫 143
6.6 本章小結 146
第7章 構建第三方庫
7.1 find_package()命令工作過程 147
7.2 模塊模式(Module mode) 149
7.3 配置模式(Config mode) 158
7.4 使用FetchContent管理依賴 167
7.5 使用ExternalProject管理外部項目 171
7.6 本章小結 174
第8章 使用CMake進行測試和打包
8.1 自動化測試:CTest 175
8.2 打包和分發(fā)工具:CPack 183
8.3 本章小結 187
第9章 CMake與CI/CD的集成
9.1 CI/CD概述 189
9.2 在GitHub Actions中使用CMake 190
9.3 在GitLab CI中使用CMake 195
9.4 在Jenkins中使用CMake 201
9.5 本章小結 207
附錄
附錄1:CMake常用命令匯總 209
附錄2:CMake常用的內置變量 231