2010-11-09 33 views
14

我一直在最近在構建系統,我找不到任何接近我想要的東西。我認爲太低端了,我不喜歡bjamCMake的語法,我真的不喜歡它們只用於C/C++。 AntNAnt也太過於語言導向。基於Python的構建工具

我真的很喜歡構建工具的想法,它使用真正的編程語言和Python非常適合。我一直在尋找使用SConswaf,並從這些2我發現WAF作爲一個最接近我想要什麼,但我仍然看到了很多工作,有工作要做,以支持一切有計劃,當我應該專注於編碼。

這裏是我想要的東西:

  • 包括和庫(C/C++,JAVA,C#,Python)的

  • 我想使用不同版本的編譯器,並支持不同的目標操作系統和CPU架構:

    • 爲C/C++:MSVC,GCC(Cygwin的,mingw的,Linux版本),LLVM-GCC,DragonEgg,鏘
    • for C#:.Net編譯器,Mono(用於windows和linux) - 所有這些用於不同的.Net版本(如NAnt's:'net-2.0','net-3.5','net-4.0','mono-2.0 」, '單3.5' ...)
  • 我想用痛飲支持包裝器生成的C#,Python和Lua中,爪哇等

  • 我想,不只是調試和發佈配置 - 就像Visual Studio很容易支持。例如:共享庫項目構建MSVC for C#環繞,並使用mingw構建Python封裝,不同版本的發佈版本 - 未經優化,完全優化,生產,模糊處理...

  • 我希望它能夠考慮項目跟蹤。解釋:如果我有一個使用SWIG的共享庫項目和一個加載SWIG包裝的不同C#項目,構建此解決方案/環境/工作區意味着複製生成的共享庫,複製共享庫在工作中使用的其他共享庫目錄和C#生成的包裝到C#項目,然後生成C#項目

  • 尼斯到有:在其他計算機上的網絡測試部署

  • 尼斯的到了:我不t真的關心IDE項目文件的生成(例如像CMake爲Visual Studio所做的那樣),因爲IDE版本和兼容性改變了,並且有很多漂亮的IDE(例如對於C/C++ CodeBlocks,CodeLite,Eclipse CDT--所有這些都可以在拇指驅動器上移植,VS則不行),但不錯的是makefile集成 - 一個簡單地稱之爲構建工具自己的makefile /腳本的makefile - 見過類似的東西使用SCons

縱觀我寫的,我認爲我問太多:),但我認爲這將有助於更多然後我

編輯:忘了說了,但我認爲這是從使用Python的暗示:我想要的工具,跨平臺

編輯:也許是我所期待的還沒有實現,但它可能會退出WAF EXTENS離子這一切,或使用SCons也許

+0

+1不錯的問題,一直在尋找相同的! – helpermethod 2010-11-09 10:10:13

+0

問題是什麼?如果有人知道這樣的構建工具,它支持所有我想要的功能,但它可以更清晰。 – unwind 2010-11-09 10:20:28

+0

@unwind:你提到了一點,我自己解釋得很辛苦,但具體 – 2010-11-09 10:22:43

回答

2

我曾經使用SCons,這是很好的,你真的可以做一切與它因爲剛剛Python代碼等什麼想念你用Python寫的 - 它很容易。

有人說,它有非常大的項目的問題,我沒有非常大的項目來運行它,所以我不知道。

+0

我發現作爲Scons和waf的一個缺點的唯一的事情就是他們有一個所謂的默認編譯器,選擇一個看起來很親切一個隱藏的選項 – 2010-11-09 11:25:10

+0

和另一件事他們都做得不好,如果你問我,是建立配置(就像我說的,超越調試和發佈點) – 2010-11-09 11:25:55