我正在研究一個更大的項目,我們正在考慮如何組織大型構建。我認爲它應該/可以用cmake完成,但目前我不知道我們的所有要求如何得到滿足。如何使用cmake組織大型構建
這是我們項目的組織是什麼樣子:
- 該項目包括多個子項目(稱爲構建模塊)
- 每個構建模塊包括用於創建靜態或動態庫多個部分組成,可執行文件或測試
- 構建模塊可能取決於其他構建模塊的公共接口
- 爲了快速構建時間,每個構建模塊應構建在單獨的CI服務器上。從一些二進制庫中的每個時間,但取出(我們正在考慮的NuGet這裏,但最簡單的解決方案可能是網絡共享)
考慮到C進行的依賴不應該建,我想的目錄結構像這樣
- Root directory
- Build Module 1
- Build Module 1 Static Lib
- Build Module 1 Unit Test
- Build Module 1 Public Interface
- Build Module 2
- ...
- Build Module n
第一個問題在這裏:從哪裏開始放置CMakeLists.txt文件?我會從構建模塊級開始,而不是根級。這樣,如果開發人員只想構建模塊3,4和5,則可以創建自定義的一個。
第二個:如何處理部署/查找包。理想情況下,依賴關係的查找機制將允許創建從源代碼構建的構建以及從源代碼獲取相關二進制文件的構建。我希望這可以通過find_package和xxxConfig.cmake/FindXXX.cmake以某種方式完成。有人能告訴我如何?我如何創建這些文件?你如何使用cmake創建適當的部署?
第三個問題:有人提供一些關於如何將nuget整合到這個過程中的信息?這可以做爲cpack發電機嗎?有沒有一個? cpack可以替代nuget嗎(這意味着它可以從遠程位置獲取二進制文件並將它們安裝到構建過程中)?
謝謝。 托比亞斯
感謝您的答案 - 它會需要一些時間來檢查你他們是什麼意思。 –
@steveire能否更新鏈接? – Lamda