Scons
| SCons | |
|---|---|
| Tekijä(t) | Steven Knight |
| Kehittäjä(t) | SCons Development Team |
| Ensijulkaisu | 13. joulukuuta 2001 |
| Vakaa versio | 4.9.1 / 27. maaliskuuta 2025 |
| Ohjelmoitu | Python |
| Käyttöliittymä | Komentorivi (CLI) |
| Tyyppi | Rakennusautomaatiotyökalu, Kehitystyökalu |
| Lisenssi | MIT-lisenssi |
| Kotisivu | scons.org |
| Lähdekoodi | github.com/SCons/scons |
SCons – Moderni ohjelmiston rakennustyökalu
SCons on tietotekniikassa käytetty alustariippumaton ohjelmistojen rakennustyökalu. Sen päätehtävä on automatisoida ja hallita ohjelmistoprojektien käännös- ja rakennusprosesseja. Se analysoi lähdekooditiedostojen riippuvuudet ja generoi lopulliset binääritiedostot asennettavaksi kohdekäyttöjärjestelmäalustalle.
SConsin tärkein ero perinteisiin työkaluihin, kuten GNU:n make-järjestelmään, on sen perustuminen Python-skripteihin sekä luotettavaan riippuvuuksien hallintaan.
Keskeiset ominaisuudet
SCons korvaa perinteiset make- ja autoconf-työkalut tarjoamalla yhtenäisen ja tehokkaamman ratkaisun.
- Python-skriptit konfiguraationa: Konfiguraatiotiedostot ovat Python-skriptejä (SConstruct ja SConscript). Tämä antaa käyttäjälle mahdollisuuden hyödyntää yleiskäyttöisen ohjelmointikielen logiikkaa, ehtoja ja tietorakenteita monimutkaisten rakennusvaatimusten kuvaamiseen.
- Sisällönperusteinen uudelleenrakennus (MD5): SCons tunnistaa tiedostojen muutokset MD5-tunnisteiden (hash-summien) avulla. Tämä eroaa make:sta, joka tarkistaa vain tiedoston aikaleiman. MD5-tunnisteiden käyttö takaa, että:
- Vain aidosti muuttuneet tiedostot käännetään uudelleen.
- Käännökset ovat luotettavia myös siirrettäessä projekteja tai tiedostojärjestelmän muutosten jälkeen.
- Automaattinen riippuvuusanalyysi: Työkalussa on sisäänrakennettu, älykäs riippuvuusanalyysi C-, C++- ja Fortran-koodille. Se skannaa automaattisesti lähdekoodin #include-lauseet, eikä kehittäjän tarvitse ylläpitää riippuvuuksia manuaalisesti. Riippuvuusanalyysiä voidaan helposti laajentaa myös muille kielille tai tiedostotyypeille.
- Alustariippumattomuus ja monikielituki: Koska SCons on Python-pohjainen, se on helposti asennettavissa ja toimii suoraan kaikilla yleisillä käyttöjärjestelmillä (Linux, Windows, macOS). Se tukee sisäänrakennettuna laajaa valikoimaa kieliä ja teknologioita, mukaan lukien:
- Kehitysympäristöjen tuki: SCons pystyy käyttämään ja generoimaan konfiguraatiotiedostoja suosituille IDE-ympäristöille, kuten Microsoft Visual Studiolle (.dsp-, .dsw-, .sln- ja .vcproj-tiedostojen generointi).
- Muut Edut:
- Tukee rinnakkaista ohjelman kääntämistä hyödyntäen nykyaikaisia moniydinprosessoreita.
- Rakennusprosessiin voidaan lisätä omia käyttäjän määrittelemiä rakennusvaiheita.
Käyttökohteet
SConsin luotettavuus ja joustavuus ovat tehneet siitä suositun valinnan monissa merkittävissä sovelluksissa ja peleissä:
- The Battle for Wesnoth
- Doom 3
- MongoDB
- OpenNebula
- Wolfenstein: Enemy Territory
- Godot (pelimoottori)