SCons - SCons
Originale forfattere | Steven Knight |
---|---|
Stabil utgivelse | 4.2.0 / 31. juli 2021
|
Oppbevaringssted | github |
Skrevet inn | Python |
Operativsystem | Kryssplattform |
Type | Programvareutviklingsverktøy |
Tillatelse | MIT -lisens |
Nettsted | scons |
SCons er et verktøy for bygging av dataprogramvare som automatisk analyserer kildekodefilavhengigheter og krav til tilpasning av operativsystem fra en programvareprosjektbeskrivelse og genererer siste binære kjørbare filer for installasjon på operativsystemet for måloperativsystemet. Funksjonen er analog med det tradisjonelle GNU -byggesystemet basert på make -verktøyet og autoconf -verktøyene.
SCons genererer prosjektkonfigurasjoner og bygger prosessimplementeringer i form av Python -skript.
Viktige funksjoner
De viktigste SCons -funksjonene inkluderer følgende:
- Konfigurasjonsfiler er Python-skript, noe som betyr at brukerskrevne builds har tilgang til et komplett programmeringsspråk for generelle formål.
- Automatisk avhengighetsanalyse innebygd for C , C ++ og Fortran . Avhengighetsanalyse kan utvides gjennom brukerdefinerte avhengighetsskannere for andre språk eller filtyper. I motsetning til GNU Compiler Collection (GCC) innebygde avhengighetsanalyse, bruker den en vanlig uttrykkskanning for inkluderte kildefiler.
- Innebygd støtte for C, C ++, D , Java , Fortran , Objective-C , Yacc , Lex , Qt og SWIG , samt TeX og LaTeX dokumenter. SCons kan også håndtere andre språk eller filtyper gjennom brukerdefinerte byggere.
- Bygg fra sentrale lagre av kildekode og forhåndsbygde mål.
- Innebygd evne til å bruke Microsoft Visual Studio , inkludert generering av .dsp-, .dsw-, .sln- og .vcproj-filer.
- Deteksjon av filinnholdsendringer ved bruk av MD5 -signaturer; valgfri, konfigurerbar evne til å bruke tradisjonelle tidsstempler.
- Evne til å utføre parallelle builds, opprettholde et spesifisert antall jobber som kjører samtidig uavhengig av kataloghierarki.
- Integrert Autoconf-lignende støtte for å finne #include-filer, biblioteker, funksjoner og typedefs .
- Global visning av alle avhengigheter, så flere build -passeringer eller ombestilling av mål er ikke nødvendig.
- Evne til å dele bygde filer i en cache for å øke hastigheten på flere builds - som ccache, men for alle typer målfiler , ikke bare C/C ++ -samling.
- Designet fra grunnen av for tvers-plattformsbygg og kjent for å fungere på POSIX- systemer (inkludert Linux , IBM AIX og OS/2 , *BSD Unices , HP-UX , SGI IRIX , Solaris , illumos ), MS Windows NT , Apple OS X .
SCons programvarehistorie startet med Cons -konstruksjonsverktøyet Cons som ble opprettet av Bob Sidebotham i 1999. Cons ble skrevet på Perl -språket . Det fungerte som en base for ScCons byggeverktøy , et design som vant Software Carpentry -prosjektet SC Build -konkurransen i august 2000. ScCons var grunnlaget for SCons.
SCons inspirerte til opprettelsen av Waf , tidligere kjent som SCons/BKsys , som dukket opp i KDE -samfunnet . En stund var det planer om å bruke det som byggeverktøy for KDE 4 og senere, men den innsatsen ble forlatt til fordel for CMake .
Viktige applikasjoner som bruker SCons inkluderer følgende: The Battle for Wesnoth , Battlefield 1942 , Doom 3 , FCEUX , gem5, gpsd , GtkRadiant , Madagascar , Mixxx , MongoDB , Nullsoft Scriptable Install System , OpenNebula , VMware ,, Wolfenstein: Enemy Territory , XORP og MCA2, openpilot og Godot .
Eksempler
Følgende eksempel er en veldig enkel SConstruct-fil som kompilerer C-programfilen hello-world.c ved å bruke standard plattformkompilator:
Program('hello-world.c')
Følgende er et mer komplekst eksempel som skaper et miljø som brukes til å bygge programmet hei:
env = Environment()
env.Append(CPPFLAGS=['-Wall','-g'])
env.Program('hello',
['hello.c', 'main.c'])
Se også
- Bygge ut
- CMake
- qmake
- Qbs (byggeverktøy)
- Premake
- GNU -byggesystem
- Liste over byggautomatiseringsprogramvare
- Waf
Referanser
Eksterne linker
- Offesiell nettside
- Neagu, Adrian (9. juli 2005), "Make Alternatives" , Freecode (Freshmeat) , hentet 21. september 2014
- Hähne, Ludwig (21. august 2008), Empirisk sammenligning av SCons og GNU Make ( PDF ) , Technical University Dresden: Genode labs