2008-12-11 31 views
3

對於超過一百萬行的多平臺項目,爲所有主流操作系統生成驅動程序,庫,命令行工具,圖形用戶界面和操作系統安裝軟件包,使用GNU和Microsoft兩種工具構建系統的最佳選擇是什麼工具鏈?什麼構建系統對跨平臺驅動程序,庫和GUI構建有最好的支持?

我們的源代碼主要是C,帶有Python,C#和GNU makefile,還有一點C++和bash。它主要駐留在一個存儲庫中,但我們將源代碼推送給所有擁有其源代碼存儲庫的第三方。還有一些興趣在於保持快速構建,這可能涉及項目的分裂。

目前我們使用GNU make,bash,python和微軟的DDKBUILD的混合。主要的問題在於我們在make之上維護了一組複雜的腳本,並且傾向於使用第三方(最好是開源)工具,並且cygwin在Windows上並不穩定(例如fork並不總是可行的),而且我們當前的構建系統不會構建或安裝工具鏈,因此易受工具鏈版本更改的影響。

回答

4

我投票贊成CMake,作爲一個從頭開始重寫KDE4構建系統的元建設工具 - 現在使KDE4成爲一個甚至可以在WindowsCE上運行的跨平臺桌面!

CMake是將KDE4移植到地球上任何操作系統的載體 - 通過使用相對工具鏈生成Makefile(或Windows中的vcprojs)約40個操作系統!

+0

CMake無法構建C#或C++/CLI項目... – mmmmmmmm 2010-09-17 07:41:13

1

JetBrains TeamCity在一般情況下工作得很好,所以應該值得在eval列表上。

ThoughtWorks Cruise也在同一個空間。雖然它的v1,它來自一個穩定,已經有一段時間了。

Team Foundation Server沒有任何關於您的情況的必要數據,但是現在它可能更像MS-shop中心,而我提到的另外兩個。

作爲一般性評論,隨着您擁有的品種水平不同,您絕對想要試用任何您想使用的東西 - 只是因爲某些東西被支持爲盒子上的刻度並不意味着它會適合oyu'重新尋找。

1

迪克森,

是您的構建主要是整體還是要單獨建立一些圖書館和它們組裝成較大的應用程序?如果項目間的依賴關係很大,你的選擇會很快受到限制。 AnthillPro不錯,我認爲TeamCity有一些Ivy集成支持。從你所說的話來看,這聽起來並不是絕對的需要,但可能有助於加速構建。這當然是我們看到許多團隊有效執行的戰略。

由於您正在研究跨平臺(我假設有多臺機器)構建,大多數除哈德森之外的開源工具都被排除在外。

構建服務器比較矩陣是由我們的朋友在ThoughtWorks主辦這裏:confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix

好運。

1

您應該有CMake您的替代品列表中進行調查。 CMake是一個元工具,即它生成您選擇的構建工具(GNU make,Visual Studio等)的輸入。我可以強烈推薦它。

1

你可能想看看Cruise。它基於Java構建,因此它可以在任何支持該平臺的平臺上運行。您也可以在不同的機器上有多個構建代理,這些代理可以在不同的平臺上執行不同的任務。 Thoughtworks仍然在構建它,所以一些功能缺乏,但它可能是一個很好的選擇,因爲你正在尋找真正的跨平臺功能。

1

SCons是一個用Python實現的跨平臺構建系統。我們用它在三個平臺上構建我們的代碼。它可以自動檢測你的構建工具,但你也可以在你的構建腳本中放入任意的Python代碼。它還使您可以將環境設置與項目結構描述分開,這是在不同環境中重新使用buidl腳本的重要功能。除了直接構建項目外,它還可以生成Visual Studio項目文件。

+2

您有使用CMake的經驗嗎?你能比較SCons到CMake嗎? – 2013-01-10 18:36:25

相關問題