我期待爲主要用C++編寫的項目集成一個不平凡的跨平臺構建系統。到目前爲止,我已經對Cmake和Scons進行了評估,雖然它們都代表了對GNU make的改進,但在我試圖使用這些工具的情況下,這兩種方法都不是優雅或透明的。這使我進入了Boost Build(Bjam),我感到鼓舞的是,鑑於我的項目依賴Boost,bjam應該已經可用於任何可行的目標平臺 。Bjam用於gcov覆蓋率分析?
我遇到了困難,試圖整齊地整合庫的單元測試的代碼覆蓋範圍......以便最終集成到構建服務器(如Jenkins)中。雖然我願意用最好的bjam /標準實踐的指導,我想我需要三個不同「變種」:
- 釋放 - 建立優化的靜態庫只
- 調試 - 建立非優化靜態庫和單元測試
- 覆蓋 - 構建啓用覆蓋的庫並鏈接到未啓用覆蓋的單元測試。
本質上,除了標準的調試和發佈版本之外,我還想要一個特殊目的的調試版本來收集覆蓋數據。
我需要建立(至少)g ++和msvc ...並僅使用g ++的gcov開關。這意味着我的庫目標需要與單元測試可執行目標不同的「編譯器標誌」......並且僅適用於我的一個編譯器套件......並且僅適用於一個變體。
我不清楚Bjam如何最好地實現這一點 - 儘管我懷疑它應該是一個相當常見的用例。 Bjam是否明確支持gcov覆蓋分析(可能使用lcov呈現結果 )?如果沒有,任何人都可以推薦一個支持上述(簡化)場景的策略嗎?
感謝這些指針......我寧願希望我能找到一個樣本,至少可以用gcc/gcov正確地工作...... – aSteve