2012-03-24 110 views
3

我們的項目非常大,我們的構建系統不再擴展。我們正在linux機器上進行跨平臺開發。我們有太多的平臺需要構建,甚至有更多的構建選項。我們相信我們需要升級基於Makefile的構建環境。linux構建系統工具

這些要求(在一個理想的世界):

  • 快速(所以沒有libtool的)
  • 能做到並行編譯
  • 交叉編譯友好
  • CCACHE整合
  • 是否增量如果滿足某些條件,則建立並可以短路(如果a,b,c選項沒有改變,則重新短路,如果它們重建則短路)
  • 輕鬆腳本(python集成將是完美的)
  • 用戶友好的語法
  • 分佈式系統。模塊可以彼此分開開發
  • 可以建立第三方庫(使用自動工具,cmake ..)
  • 可以跟蹤模塊之間的依賴關係(但足夠靈活,以便模塊可以被其他外部替換)。
  • 內置的單元測試支持
  • 大型二進制文件可以分別從版本控制存儲,如果需要
  • 能保持開源的軌跡可以下載許可
  • git的整合

是你是否知道會滿足(至少部分)這些要求的任何工具(或一組工具)?目前我傾向於gyp + ninja。但語法不是很友好,沒有文檔。所以這是一個艱難的銷售。

+0

爲什麼立即關閉libtool?你有沒有對現代版本進行基準測試,並確認其不足? – 2012-03-24 14:41:45

+0

大約6個月前,我已將我的一個項目(〜4K文件)移至gyp。它以前建立在configure/libtool之上。構建時間從20年代中期到10年(以分鐘爲單位)。除非去年大幅度改進,否則我支持我的發言。順便說一句,我的另一臺服務器上有固態硬盤的時間增量較低。 – 2012-03-26 21:56:27

回答

1

您提到Python集成,所以SCons聽起來像它會符合法案。它完全基於Python(構建腳本實際上是Python腳本),它非常靈活,並且滿足您的其他許多要求。

從網站:

使用SCons是一個開放源碼軟件建設的工具,也就是說,下一代構建工具。可以將SCons看作改進的跨平臺替代品,它具有類似於autoconf/automake和編譯器緩存(如ccache)的集成功能的經典Make實用程序。總之,SCons是構建軟件的一種更簡單,更可靠,更快捷的方式。

1

至於C++而言,一個很好的構建系統是CMake

0

忍者不應該被最終用戶使用,而應該由像CMake這樣的其他高級構建工具來使用。這確實是一個很好的選擇,特別是對於大型和跨平臺項目。它沒有內置的python支持,但很少或從不需要使用CMake的外部腳本 - 它具有用於大多數常見任務的工具。