我正在研究一個Python/Haskell項目,並且正在尋找Makefile
的替代方案。明顯的選擇是Python SCons和Haskell Shake。由於我對他們兩人都沒有經驗,所以我想問問他們的缺點和優點是否有任何比較。SCons和Shake之間的區別
更新:該項目建築有點複雜的要求:
- 讓用戶配置構建 - 以工具等類似的選項來啓用/禁用,路徑
- 有兩個Haskell和在編譯時生成Python文件。他們的依賴應該正常工作。
- 有多個Haskell程序共享大部分源文件。我想這樣:
- 它可以建立每個人單獨,而不是建立不需要的來源;
- 編譯多個程序時不會多次構建源文件;如果可能的話,在編譯過程中尚未達到並行性。
- 檢查目標系統及其路徑幾個安裝的程序(如
python
,flock
等) - 檢查目標系統的依賴,無論是Python和哈斯克爾。
- 根據依賴項參數化構建 - 如果缺少測試的依賴關係,應該仍然可以構建項目,跳過測試(並通知用戶相關信息)。
請注意,僅僅因爲您的項目在Python/Haskell中,並不會限制您使用SCons/Shake - 這兩種構建系統都適用於多種語言的項目。當然,混合語言較少通常是有益的。 –
@NeilMitchell確實如此,但我想避免向用戶強加額外的需求,這就是爲什麼我試圖將構建系統限制爲項目已經使用的語言。 –