緒言
感謝您抽出寶貴的時(shí)間閱讀有關(guān)SCons的文章毯盈。SCons是下一代軟件構(gòu)建工具方椎,當(dāng)待編譯文件發(fā)生變動(dòng)時(shí)漠酿,它能夠保持工程始終處于最新的編譯狀態(tài)憔鬼,解決了由于文件更新導(dǎo)致編譯未更新的相關(guān)依賴問題。
SCons與眾不同的地方在于观话,它是采用python腳本編寫予借,這和大多數(shù)的編譯工具采用一門新的語言來實(shí)現(xiàn)的方式剛好相反(python是一門已經(jīng)被大家廣泛接受并應(yīng)用的腳本語言)。SCons依然有子集的學(xué)習(xí)曲線频蛔,因?yàn)楫?dāng)你構(gòu)建工程的時(shí)候你必須清晰地知道該調(diào)用哪些函數(shù)灵迫,當(dāng)然這對(duì)熟悉python語法的同學(xué)來說都比較簡單。
不同的是晦溪,使用Python作為配置文件龟再,通常比采用其他由程序員專門發(fā)明的構(gòu)建工具更容易學(xué)習(xí)SCons,這在很大程度上要?dú)w功于Python的一致性和可讀性尼变。將一種實(shí)時(shí)的實(shí)時(shí)腳本語言用作配置文件的基礎(chǔ),這對(duì)于熟練的程序員來說,可以根據(jù)需要輕松地完成構(gòu)建復(fù)雜的工程嫌术。
1. SCons原則
在設(shè)計(jì)和使用SCons時(shí)哀澈,我們嘗試遵循一些原則:
正確性
SCons保證了正確的構(gòu)建,及時(shí)這意味著需要犧牲一點(diǎn)性能度气,但這是最為重要的一點(diǎn)割按。無論軟件如何構(gòu)建,如何編寫磷籍,構(gòu)建工具多么不尋常适荣,我們都努力保證構(gòu)建的正確性。
性能
在保證正確構(gòu)建的基礎(chǔ)上院领,我們嘗試盡可能快速完成構(gòu)建弛矛。特別是,我們可能不得不降低默認(rèn)SCons的構(gòu)建速度以保證構(gòu)建的正確性比然,但我們依然嘗試通過優(yōu)化一些編譯參數(shù)來盡可能提高編譯性能丈氓。
便利性
SCons會(huì)盡可能提供更多的即用服務(wù),包括檢測(cè)系統(tǒng)上正確的工具并正確使用使用他們來構(gòu)建軟件强法。
簡而言之万俗,我們將努力使SCons做到“做正確的事情”,并正確構(gòu)建軟件饮怯,減少出錯(cuò)闰歪。
2. 關(guān)于本指南完整性的警告
當(dāng)您閱讀本指南的時(shí)候,請(qǐng)注意:就像太多的開源軟件那樣蓖墅,SCons的使用指南也不是一直都和發(fā)布版本保持同步库倘。換句話說,SCons可能更新了很多置媳,但是本指南還尚未更新于樟。(試想一下,這很多軟件的開發(fā)也是這樣拇囊,不是嗎迂曲?)
盡管該指南并非我們想象的那么完整,但我們的開發(fā)過程確實(shí)注意并確保了SCons指南盡可能具備最新的特性寥袭。因此路捧,如果您試圖弄清楚SCons支持的方法,但是無法在本指南中找到传黄,那么您可以考慮在本指南中添加一個(gè)部分杰扫,這樣后面有需要的人就不必經(jīng)歷同樣的事情了。
3. 致謝
沒有很多人的幫助膘掰,SCons就不可能存在章姓,其中很多人甚至都可能不知道他們提供了一些幫助或者提供了一些啟發(fā)佳遣。因此,感謝并沒有特定順序:
首先凡伊,最需要感謝Bob Sidebotman零渐,他是經(jīng)典基于Perl的Cons工具(1996年發(fā)布)的原作者,這提供了SCons的基礎(chǔ)框架和模型系忙。
其次是Greg Wilson诵盼,在2000年的軟件競賽項(xiàng)目中,推動(dòng)SCons成為了一個(gè)真正的項(xiàng)目银还。如果沒有這次的軟件競賽风宁,將Cons經(jīng)典體系結(jié)構(gòu)的優(yōu)勢(shì)與Python整合依然還僅僅是一種理念,而非現(xiàn)實(shí)蛹疯。
然后是SCons的整個(gè)開發(fā)團(tuán)隊(duì)戒财,如果沒有他們?cè)谶^去幾年的精彩合作,付出的熱情精力與實(shí)踐苍苞,SCons依然無法像現(xiàn)在這樣實(shí)用固翰。(好多人)
這里特別感謝David Snopek貢獻(xiàn)的“AutoCons”代碼,這些代碼構(gòu)成了Christoph的Configure功能的基礎(chǔ)(小編注:不懂...)羹呵。David十分慷慨地提供給了SCons骂际,因?yàn)樗畛踝裱氖荊PL協(xié)議,而SCons遵循的MIT協(xié)議冈欢,協(xié)議限制相對(duì)寬松很多歉铝。
感謝Peter Miller,他提供了出色的管理系統(tǒng)Aegis凑耻,它一開始就位SCons項(xiàng)目的開發(fā)提供了可靠的開發(fā)方法太示,并且想我們展示了如何增量回歸測(cè)試集成到實(shí)際的開發(fā)周期中(eXtreme Programming誕生之前的幾年)。
最后感謝Guid van Rossum出色的python腳本語言香浩。
4. 聯(lián)系方式
與SCons工作人員(包括作者)聯(lián)系的最佳方式是郵件:
如果您想咨詢一般的SCons使用問題类缤,請(qǐng)聯(lián)系: scons-users@scons.org。
如果您想直接聯(lián)系SCons開發(fā)社區(qū)邻吭,請(qǐng)聯(lián)系:scons-dev@scons.org餐弱。
如果想接受SCons的公告,請(qǐng)加入 announce@scons.tigris.org郵件列表囱晴。