ARCHIV |
|||||
Software (10844)
Distribuce (131)
Skripty (697)
Menu
Diskuze
Informace
|
SCONS - Nástroj pro sestavování software - (1)Používáte GNU Autotools? Určitě ano, je to velmi užitečný softwarový
balík. Má však několik nevýhod, které daly vzniknout několika projektům
kladoucím si za cíl jejich eliminaci. Scons je z těchto projektů nejnadějnější. PředmluvaO projektu SCons jsem věděl již dávno. Zařadil jsem ho mezi slibně se vyvíjející projekty a čekal, co ze z něj časem vyvine. Přesněji řečeno, čekal jsem až a zda ho začnou používat Open Source projekty. V roce 2004 se konečně začal SCons více používat jako build systém pro Open Source projekty. Zdetekoval jsem několik projektů, které přešly z GNU autotools na SCons. SCons začal být používán i v komerční sféře, podle slov autorů je to build systém pro hru Doom 3. Pravděpodobně nejznámější Open Source projekty používající SCons jsou Blender a jeho spřátelený renderer Yafray. Nevýhody GNU AutotoolsGNU Autotools se skládají ze tří hlavních částí: Autoconf, Automake a Libtool. Programátoři je proklínají sice všechny, ale pokud bych je měl seřadit podle jejich neoblíbenosti tak 1. automake, 2. libtool, 3. autoconf. To však neznamená, že se nepoužívají. Právně naopak. Protože tyto nástroje odvedou i přes své nedostatky dobré služby, je po zanadávání si obvykle snadnější svůj projekt přizpůsobit představám Autotůlů než je zcela ignorovat a obstarat si ekvivaletní věci ve vlastní režii. Některé nevýhody těchto nástrojů najdete popsané na Fresh meatu. Nevýhod mají opravdu mnoho, uvedu zde jen ty základní. Koncept
Autoconf
Automake
Zde bych raději skončil, článek má být o SCons a ne o GNU Autotools brain damage. GNU Autotools mám rád -pouze- jako uživatel (./configure;make install), nikoliv jako programátor. SConsHistorieNástoj SCons začal svoji existestenci jako vítězný projekt Software Carpentry SC Build competition. Ačkoliv zvítězil, nezdál se investorům natolik zajímavý, aby jej finančně podpořili. Vývoj SCons to naštěstí nezastavilo a tak se dnes můžeme těšit z tohoto vynikajícího nástroje. Návrh SConsu nebyl původní, šlo o vylepšení projektu Cons . Oba projekty si byly dost podobné. Nejpodstatnější rozdíl mezi oběma projekty byl použitý programovací jazyk. Cons byl založen na Perlu, zato SCons na Pythonu. Základní Koncepty SCons1. Globální pohled na projektNejvětší výhoda. Před začátkem kompilace jsou zpracovány konfigurační soubory ve všech adresářích a je vytvořen graf závislostí pro celý projekt. Nemůže se tudíž stát, že některé části zůstanou neaktualizované díky závislostem napříč adresáři. Použití této metody je zárukou, že build bude korektní. 2. Konfigurační soubory jsou programySnahy o programování v Makefile jsou známé. Nejvyspělejší verze utility Make - PMake a GNUMake rozšířili POSIX.2 Make standard alespoň o základní příkazy pro flow control. SConst jde však ještě dál. Koncept konfiguračních souborů jako vstupních dat pro utilitu make byl zrušen. Konfigurační soubory jsou plnohodnotné programy v programovacím jazyku Python. SCons exportuje do těchto programů své API, které tyto programy používají pro sestavení grafu závislostí projektu. Konfigurační programy mouhou pro jeho sestavení využívat všechny rysy jazyka Python včetně modulů. 3. Automatická analýza závislostíPokud SCons obsahuje podporu pro použitý programovací jazyk jsou zdrojové soubory automaticky analyzovány a nelezené závislosti přidány do projektu. 4. Použití MD5 signatur místo časovýchSCons používá standardně MD5 signatury zdrojových souborů. Pokud je zdrojový soubor modifikován např. CVS checkoutem ale MD5 signatura zůstala nezměněná, není rekompilace nutná. 5. Automatické generování akce cleanSCons ví, co vznikne z kterých souborů po jejich kompilaci, linkování či instalaci. Může proto na požádání provést i obrácenou akci - clean, deinstalaci, atd. 6. Použití více prostředíSCons umí v jednom projektu používat více prostředí. V rámci prostředí lze definovat odlišný kompilátor, jeho nastavení, promenné prostředí, atd. Pod Windows se to hodí, jelikož lze z bez problémů vyrábět na jeden zátah cygwin i native binárky. 7. Vše v jednomSCons zcela nahrazuje utility GNU Autoconf, GNU Automake, GNU Libtool, GNU Make.Je to kompletní build systém a ne pouhý Makefile generátor. 8. Platformová nezávislostSCons ke své činnosti nepotřebuje žádný externí program s výjímkou programů nutných k sestavení projektu. SCons postačí Python 1.5 či vyšší a pracuje bezproblémů ve všech prostředích podporovaných Pythonem. 9. Podpora pro testování prostředíPřed vlastní kompilací je možné provádět testy. Lze hledat knihovny, hlavičky, funkce, struktury a používat konfiguraci z programu pkgconfig. Při generování testovacích programů a jejich spouštění je automaticky použit aparát pro správu závislostí, čož zaručuje jejich kešování a konzistenci. 10. Snadná rozšiřitelnostSCons bylo napsáno tak, aby se velmi snadno rozšiřovalo. Pro podporu nového jazyka, kompilátoru nebo prostředí obvykle stačí napsat zhruba jednu stránku Python kódu. 11. Příznivá licenceSCons je licencováno pod velmi příznivou licencí, známou jako MIT/X11, která zaručuje bezproblémové použití pro všechny typy projektů. 12. Podpora pro buildování z VCSSCons umí získat zdrojové kódy z CVS, BitKeeper, RCS, SCSS, Perforce. 13. Vysoká flexibilitaDíky možnosti přímého použití Pythonu při generování grafu projektu, získáte o stupeň lepší flexibilitu než v případě použití klasických konfiguračních souborů. Nejste nikterak omezováni a konečně si můžete přizpůsobit build systém tak, jak vyhovuje vám.
Související články
SCONS - Nástroj pro sestavování software - 2
SCONS - nástroj pro sestavování software - 3 SCONS - Nástroj pro sestavování software - 4 SCONS - Nástroj pro sestavování software - 5 SCONS - Nástroj pro sestavování software - 6 SCONS - Nástroj pro sestavování software - 7 SCONS - Nástroj pro sestavování software - 8 SCONS - Nástroj pro sestavování software - 9 Celou kategorii (seriál) Další
|
Vyhledávání software
Vyhledávání článků
28.11.2018 23:56 /František Kučera 12.11.2018 21:28 /Redakce Linuxsoft.cz 6.11.2018 2:04 /František Kučera 4.10.2018 21:30 /Ondřej Čečák 18.9.2018 23:30 /František Kučera 9.9.2018 14:15 /Redakce Linuxsoft.cz 12.8.2018 16:58 /František Kučera 16.7.2018 1:05 /František Kučera
Poslední diskuze
31.7.2023 14:13 /
Linda Graham 30.11.2022 9:32 /
Kyle McDermott 13.12.2018 10:57 /
Jan Mareš 2.12.2018 23:56 /
František Kučera 5.10.2018 17:12 /
Jakub Kuljovsky | |||
ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2024) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze |