2011-10-29 62 views
0

我想設置SCons來構建我的項目,並且很難搞清楚如何組織事物。它基本上由以下幾部分組成:與SCons構建一個多部分項目

Module:一個單獨的小型c項目,編譯一個已經用SCons設置的小型庫。

Core:另一個已經與Scons建立的c項目。它通過在項目內部的某些文件上調用TheScript來生成一些代碼。

Main:直接使用ModuleCore中的文件的項目;它通過在Module內的文件上調用TheScript來生成代碼,並且它需要包括Core中的源文件和由Core生成的庫文件。

TheScript一個單獨的python文件,它自己生活在某個地方。

我的問題是我該如何安排這些東西?對於CoreMain,我需要兩個項目以某種方式調用最新版本的TheScript。目前,我在每個項目目錄中都有腳本的符號鏈接,但這不是一個長期的解決方案。當我想在項目之間進行引用時出現同樣的問題:我不想簡單地輸入在我的機器上工作的魔法路徑,但我確實希望將它們保留爲獨立項目。

什麼是解決此問題的好方法?我已經看到版本控制軟件用於這樣的地方,依賴項目被拉入,但我迄今爲止只使用bazaar進行直接版本控制。我不知道從哪裏開始解決我所描述的問題。我不需要集市中的具體示例 - 一般概念和文檔指針將會很好地完成。

回答

1

通常情況下,這將通過SCons分層構建完成Hierarchical builds但是,如果要將Core和Main作爲獨立項目保存,這無法提供幫助。我從來沒有嘗試過,但也許你可以在Core和Main中都有一個Sconscript和一個SConstruct。 SConsctruct可以讓它成爲一個獨立的項目,而SConscript將允許它們一起構建,因此可以進行正確的依賴性檢查。

你可以組織項目如下:

. 
|-- SConstruct 
|-- Core 
|  |-- 
|  |-- SConscript 
|  `-- SConstruct 
|-- Main 
|  |-- 
|  |-- SConscript 
|  `-- SConstruct 
`-- Module 
     |-- 
     `-- SConscript 

至於手創樂團的最新版本,你可以在SConscript文件調用它沒有指定路徑,並在根級別SConstruct,拉在Unix環境變量像這樣:Propagating PATH From the External Environment

此外,你可以考慮SCons倉庫功能:在SCons用戶指南中編譯代碼倉庫。它不會讓我發佈超過2個超鏈接來防止垃圾郵件。

希望這有助於

布雷迪