cmake-init缺失的CMAKE項目初始化器cmake-init是一個自以為是的CMAKE項目初始化器,生成了準備好的CMAKE項目,這些項目已準備就緒,單獨的消費者和開發人員目標,為安裝規則提供適當的可重新定位的CMAKE軟件包並使用現代CMAKE(3.14+)。
請參閱Wiki,例如CMAKE-INIT的輸出以及為CMAKE實施的功能的其他務實示例,例如軟件包管理人員,絨毛測試,超級建築等。






如果您想與我聯繫以獲取與CMake有關的任何與CMAKE有關的事情,那麼您可能會在C ++ Slack的#cmake頻道中找到我。如果您想知道的是特定於CMAKE-INIT,那麼您也可以在此存儲庫的討論中提出問題。
h靜態/共享庫?提示時只需選擇s即可。簡單正確!FetchContent準備就緒項目確保安裝了這些程序:
筆記
如果您想使用Visual Studio,則其中一些工具也可以在Windows上使用,但是必須安裝這些插件:
該軟件包可從PYPI下載。您可以使用pip安裝此軟件包:
pip install cmake-initClang-Tidy是一種靜態分析工具,可幫助您在編譯之前在代碼中發現邏輯錯誤。該腳本為您提供了在dev預設中繼承clang-tidy預設的選項,從而為此工具提供了CMAKE集成。
CI始終為您運行Clang Tidy,因此在本地安裝和使用它是完全可選的,但建議使用它。
對於Windows用戶,如果您想使用clang-tidy,則必須安裝忍者並將dev預設中的generator字段設置為Ninja 。這樣做的原因是,只有Makefiles和Ninja才能與Clang-Tidy一起使用Cmake。對於其他發電機,此功能是無操作的。
Cppcheck是類似於Clang-Tidy的靜態分析工具,但是它們檢測到的內容的重疊是最小的,因此使用兩者都是有益的。該腳本為您提供了在dev預設中繼承cppcheck預設的選項,從而為此工具提供了CMAKE集成。
CI將始終為您運行Cppcheck,因此在本地安裝和使用它是完全可選的,但建議使用它。
對於Windows用戶,如果您想使用CPPCheck,則必須安裝忍者並將dev預設中的generator字段設置為Ninja 。這樣做的原因是,只有Makefiles和Ninja才能與Cppcheck一起使用Cmake。對於其他發電機,此功能是無操作的。
doxygen是從註釋源代碼生成文檔的工具。與此結合使用,M.CSS用於展示生成的文檔。
生成的項目將在開發人員模式下具有docs目標,該目標可用於將文檔構建到<binary-dir>/docs/html目錄中。
安裝doxygen後,請確保PATH中存在doxygen可執行文件,否則您可能會收到令人困惑的錯誤消息。
可以使用生成的CI工作流中的docs作業將該文檔部署到GitHub頁面上。按照工作中剩下的評論啟用這一點。
注意:M.CSS與doxygen> = 1.9不使用。您可以安裝1.8.20來使用docs目標。請參閱問題#41和#48。
LCOV是處理由GCC的gcov儀器生成的覆蓋範圍信息的工具。此覆蓋範圍信息可用於查看程序的哪些部分執行。
如果啟用了ENABLE_COVERAGE變量,則生成的項目將在開發人員模式下具有coverage目標。使用單獨的目標而不是CTEST內置coverage步驟的原因是因為它缺乏必要的自定義。該目標應在測試後運行,默認情況下,它將在<binary-dir>/coverage.info上生成報告,並在<binary-dir>/coverage_html目錄上生成一個HTML報告。
對於Windows用戶,您可以使用一個稱為OpenCppCoverage的類似工具,為此,生成的cmake目錄中有一個示例腳本。該腳本以示例為例,因為Linux VM在GitHub Action中啟動並更快地運行,因此它用於覆蓋範圍。
Clang-Format是LLVM工具套件的一部分,類似於Clang-Tidy。它是代碼襯里和代碼格式器,可用於執行樣式指南。
分別使用format-check和format-fix代碼兩個目標。
注意:該項目生成了根據Clang-Format 14的格式化的文件。更新或以上的版本可能以不同的方式格式化該項目。
CODESPELL是主要在源代碼中查找和修復拼寫錯誤的工具。
分別使用spell-check和拼寫修正目標可以在開發人員模式下檢查和修復兩個目標,以檢查和spell-fix拼寫錯誤。
-p標誌可用於為項目選擇一個軟件包管理器。標誌的論點可能是:
none :沒有包裝管理器集成(默認)conan :柯南整合vcpkg :VCPKG集成使用軟件包管理器時,生成的項目中使用以下軟件包:
確保閱讀生成的黑客文檔,以查看需要做什麼才能獲得依賴。
cmake-init [--c] <path>-s , -e或-h標誌,以快速創建共享庫,可執行文件或僅標題庫。 --c開關將將生成的項目的類型設置為C而不是C ++。cmake-init --helpcmake-init是免費軟件:您可以按照自己的意願使用,學習,共享和改進。具體來說,您可以根據自由軟件基金會發布的GNU通用公共許可證的條款重新分配和/或對其進行修改,該版本是該許可證的第3版,或((可根據您的選項))任何以後的版本。
目錄cmake-init/templates的內容使用非執行許可證獲得許可。有關更多詳細信息,請參見該目錄中的許可證。