SCons - SCons

SCons
SCons.png
Originale forfattere Steven Knight
Stabil utgivelse
4.2.0 / 31. juli 2021 ; 46 dager siden ( 2021-07-31 )
Oppbevaringssted github .com /SCons /scons
Skrevet inn Python
Operativsystem Kryssplattform
Type Programvareutviklingsverktøy
Tillatelse MIT -lisens
Nettsted scons .org

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 .

Historie og relaterte prosjekter

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å

Referanser

Eksterne linker