CMake 食譜
該儲存庫收集 Packt 出版、Radovan Bast 和 Roberto Di Remigio 撰寫的 CMake Cookbook 中包含的食譜來源
目錄
第 1 章:從簡單的可執行檔到庫
- 1. 將單一原始檔編譯為可執行檔
- 2. 切換發電機
- 3. 建置和連結靜態庫和共享庫
- 4. 用條件控制編譯
- 5. 向使用者呈現選項
- 6. 指定編譯器
- 7. 切換建置類型
- 8. 控制編譯器標誌
- 9. 制定語言標準
- 10. 使用控制流結構
第 2 章:偵測環境
- 1. 發現作業系統
- 2. 處理平台相關的原始碼
- 3. 處理依賴編譯器的原始碼
- 4. 發現主機處理器架構
- 5. 發現主機處理器指令集
- 6. 為 Eigen 函式庫啟用向量化
第 3 章:偵測外部函式庫和程序
- 1.檢測Python解釋器
- 2. 檢測Python庫
- 3. 檢測Python模組和套件
- 4. 偵測 BLAS 和 LAPACK 數學庫
- 5. 偵測OpenMP並行環境
- 6.檢測MPI並行環境
- 7. 檢測特徵庫
- 8. 檢測Boost函式庫
- 9.檢測外部函式庫:一、使用
pkg-config
- 10、檢測外部庫: II.編寫查找模組
第 4 章:建立和執行測試
- 1. 建立一個簡單的單元測試
- 2. 使用 Catch2 庫定義單元測試
- 3. 定義單元測試並連結 Google Test
- 4. 定義單元測試並連結Boost測試
- 5. 使用動態分析來檢測記憶體缺陷
- 6. 測試預期失敗
- 7. 對長時間測試使用逾時
- 8. 並行運行測試
- 9. 運行一部分測試
- 10. 使用測試夾具
第 5 章:配置時與建置時操作
- 1.使用與平台無關的文件操作
- 2. 在配置時執行自訂命令
- 3. 在建置時執行自訂指令: I. 使用
add_custom_command
- 4. 在建置時執行自訂命令: II.使用
add_custom_target
- 5. 在建置時為特定目標執行自訂命令
- 6. 探測編譯和連結
- 7. 探測編譯器標誌
- 8. 探測執行
- 9. 使用生成器表達式微調配置和編譯
第 6 章:產生原始碼
- 1. 配置時產生來源
- 2. 使用Python在設定時產生原始碼
- 3. 使用Python在建置時產生原始碼
- 4. 記錄專案版本資訊以便重現
- 5. 從文件中記錄項目版本
- 6. 在配置時記錄 Git 雜湊值
- 7. 在建置時記錄 Git 雜湊值
第 7 章:建構項目
- 1. 函數和巨集的程式碼重用
- 2. 將 CMake 來源拆分為模組
- 3. 寫函數來測試和設定編譯器標誌
- 4. 使用命名參數定義函數或巨集
- 5. 重新定義函數和巨集
- 6. 棄用函數、巨集和變數
- 7. 使用
add_subdirectory
限制範圍 - 8. 避免使用
target_sources
全域變數 - 9. 組織Fortran項目
第 8 章:超級建置模式
- 1. 使用超級建置模式
- 2. 使用超級建置管理依賴項:I. Boost 函式庫
- 3. 使用超級建置管理依賴關係:II。 FFTW 圖書館
- 4. 使用超級建置管理依賴關係:III。谷歌測試框架
- 5. 將專案作為超級建置進行管理
第 9 章:混合語言項目
- 1. 建置使用 C/C++ 函式庫的 Fortran 項目
- 2. 建置使用 Fortran 函式庫的 C/C++ 項目
- 3. 使用 Cython 建構 C++ 和 Python 項目
- 4. 使用 Boost.Python 建構 C++ 和 Python 項目
- 5. 使用 pybind11 建構 C++ 和 Python 項目
- 6. 使用 Python CFFI 混合 C、C++、Fortran 和 Python
第 10 章:編寫安裝程序
- 1. 安裝你的項目
- 2.生成導出頭
- 3. 匯出您的目標
- 4. 安裝超級構建
第 11 章:打包項目
- 1.產生原始碼包和二進位包
- 2. 透過 PyPI 分發使用 CMake/pybind11 建構的 C++/Python 項目
- 3. 透過 PyPI 分發使用 CMake/CFFI 建置的 C/Fortran/Python 項目
- 4. 將一個簡單的項目作為 Conda 包分發
- 5. 將具有相依性的項目作為 Conda 套件分發
第 12 章:建構文檔
- 1. 使用 Doxygen 建置文檔
- 2. 使用Sphinx建置文檔
- 3. 結合 Doxygen 和 Sphinx
第 13 章:替代產生器與交叉編譯
- 1.交叉編譯hello world範例
- 2. 使用 OpenMP 並行化交叉編譯 Windows 二進位文件
第 14 章:測試儀表板
- 1. 將測試部署到 CDash 儀表板
- 2. 向 CDash 儀表板報告測試覆蓋率
- 3. 使用AddressSanitizer並向CDash報告記憶體缺陷
- 4. 使用 ThreadSanitizer 並向 CDash 報告資料爭用
第 15 章:將專案移植到 CMake