SCons
SCons estas konstruilo por programaroj kiu aŭtomate analizas dependecojn de fontkoddosieroj kaj necesajn adaptojn al operaciumo el priskribo de programarprojekto. Ĝi estigas finajn duumajn plenumeblojn por instalado je la cibla operaciuma platformo. Ĝia funkcio estas analoga al la tradicia GNU build system basata sur la iloj make kaj autoconf.
SCons | |
---|---|
Aŭtoro | Steven Knight |
Lasta stabila versio | 2.2.0 (5-a de aŭgusto 2012) |
Operaciumo | Plursistema |
Programlingvo | Python |
Programtipo | Iloj por programado (en) |
Permesilo | MIT-permesilo |
Retejo | www |
SCons uzas la programlingvon Python kiel fundamento, same tiel ke ĉiuj programaraj projektaj konfiguroj kaj implementoj de konstruadprocezo estas pythonaj programoj.
Elstaraj trajtoj
redakti- Konfigurdosieroj estas pitonaj programoj, kiu signifas ke uzeblas kompleta ĝeneralcela programlingvo.
- Aŭtomata analizo de dependecoj inkluda por C, C++ kaj Fortran. Dependecanalizo etendeblas per skaniloj difinitaj de la uzanto por aliaj lingvoj aŭ dosiertipoj. Malsame al la inkluda dependecanalizo de GCC, ĝi uzas regulaj esprimoj por skani inkludaj fontdosieroj.
- Primitiva subteno de C, C++, D, Java, Fortran, Objective-C, Yacc, Lex, Qt kaj SWIG, same tiel ke TeX kaj LaTeX dokumentoj. Aliaj lingvoj kaj dosiertipoj subteneblas per komponiloj difinitaj de la uzanto.
- Muntado el centralaj deponejoj de fontkodo kaj premuntadaj celoj.
- Primitiva subteno por elŝuti fontdosierojn el sistemoj de versionkontrolado kiel SCCS, RCS, CVS, Subversion, BitKeeper kaj Perforce.
- Primitiva subteno de Microsoft Visual Studio, inklude estigado de dosieroj .dsp, .dsw, .sln kaj .vcproj.
- Detektas ŝanĝojn helpe de MD5 subskriboj; opcia subteno por tradiciaj tempstampoj.
- Subteno por paralelaj muntadoj kiu samtenas iun specifan nombron de taskoj samtempe senrigarde la hierarkion de dosierujoj.
- Serĉo de dosieroj "#include", bibliotekoj, funkcioj kaj "typedefs".
- Malloka vido de ĉiuj dependecoj, tiel ke ne necesas multaj muntadoj nek reordigado de celoj.
- Eblas kunuzi muntitajn dosierojn en kaŝmemoro por plirapidigi pluroblajn muntadojn - kiel cache sed por ĉiu ajn celdosiertipo, ne nur C/C++ muntado.
- Desegnita ekde el komenco por krucplatformaj muntadoj, ĝi funkcias sur POSIX sistemoj (inklude Linukso, AIX, *BSD tipoj, HP-Ux, IRIX, Solaris), Windows NT, OS X, kaj OS/2.
Historio kaj rilataj projektoj
redaktiLa historio de la programo SCons komencis kun la programkonstruilo Cons kreita de Bob Sidebotham en 1999.[1] Cons estis redaktita en la programlingvo Perl. Ĝi fariĝis bason por la muntilo ScCons, kiu gajnis la Software Carpentry Design Competition en la kategorio de la muntiloj en Aŭgusto 2000.[2] ScCons estis la fundamento de SCons.
SCons inspiris la kreadon de Waf, antaŭe konata kiel SCons/BKsys, kiu aperis en la KDE komunumo. Dum iom da tempo, oni planis uzi ĝin kiel muntilo por KDE 4 kaj sekvantaj, sed oni finfine preferis CMake.[3]
Ekzemplaj SCons dosieroj
redaktiLa sekvanta simplega dosiero tradukas la dosieron saluton.c uzante la defaŭltan platforman tradukilon.
Program('saluton.c')
La sekvanta iomete pli kompleksa ekzemplo kreas medion (anglalingve Environment) kiun ĝi uzas por munti la programon saluton.
env = Environment()
env.Append(CPPFLAGS=['-Wall','-g'])
env.Program('saluton',
['saluton.c', 'main.c'])
Notindaj aplikaĵoj uzantaj SCons
redakti- The Battle for Wesnoth,[4]
- Battlefield 1942,
- Blender,[5]
- Csound,[6]
- Doom 3,
- gem5,
- gpsd,[7]
- GtkRadiant,[8]
- Madagascar,[9]
- Mixxx,
- MongoDB,[10]
- Nullsoft Scriptable Install System,[11]
- NumPy kaj SciPy,
- OpenNebula,
- OSRM,[12]
- SuperCollider,
- VMware,
- V8 (JavaScript engine),[13]
- Wolfenstein: Enemy Territory,
- XORP, MCA2,[14]
Referencoj
redakti- ↑ Cons web site. Arkivita el la originalo je 2000-08-15. Alirita 2013-01-04 .
- ↑ Samuel, Alex. Software Carpentry Design Competition Second Round Results Config, Build, and Track categories (2000-08-04). Alirita 2012-10-29 .
- ↑ Neundorf, Alexander. Why the KDE project switched to CMake -- and how (continued). LWN.net (2006-06-21). Alirita 2009-07-21 .
- ↑ CompilingWesnoth. Arkivita el la originalo je 2018-01-03. Alirita 2011-04-11 . Arkivita kopio. Arkivita el la originalo je 2018-01-03. Alirita 2013-01-04 .
- ↑ Dev:Doc/Building Blender (2011-02-16). Arkivita el la originalo je 2011-05-12. Alirita 2011-04-11 .
- ↑ Building Csound. Alirita 2011-04-11 .
- ↑ SCons is full of win today (2011-04-05). Alirita 2011-04-11 .
- ↑ Developer documentation for GtkRadiant 1.6.0 (Zeroradiant) (2008-06-30). Arkivita el la originalo je 2011-09-28. Alirita 2009-12-28 .
- ↑ Installation (2011-02-26). Arkivita el la originalo je 2020-12-10. Alirita 2011-04-11 .
- ↑ MongoDB: Building for Linux. 10gen, Inc (2009-01-30). Alirita 2011-02-08 .[rompita ligilo]
- ↑ INSTALL (NSIS source code) (2011-05-28). Alirita 2011-04-11 .
- ↑ Open Source Routing Machine. Alirita May 292012 .
- ↑ How to Download and Build V8. Google, Inc. Alirita 2011-07-05 .
- ↑ Modular Controller Architecture. Research Center for Information Technology (FZI), Karlsruhe Institute of Technology (KIT). Arkivita el la originalo je 2020-12-10. Alirita 2013-01-04 .