|
|
| Rivi 1: |
Rivi 1: |
| {{Ohjelma
| | #Ohjaus[[SCons]] |
| | nimi = SCons
| |
| | logo =
| |
| | kuva =
| |
| | kuvateksti =
| |
| | tekijä = Steven Knight
| |
| | kehittäjä = SCons Development Team
| |
| | moottori =
| |
| | ensijulkaisu = 13. joulukuuta 2001
| |
| | vakaaversio = 4.9.1
| |
| | vakaapvm = 27. maaliskuuta 2025
| |
| | kehitysversio =
| |
| | kehityspvm =
| |
| | ohjelmoitu = [[Python]]
| |
| | käyttöliittymä = Komentorivi (CLI)
| |
| | tyyppi = Rakennusautomaatiotyökalu, Kehitystyökalu
| |
| | lisenssi = [[MIT]]-lisenssi
| |
| | kotisivu = [http://scons.org/ scons.org]
| |
| | lähdekoodi = [https://github.com/SCons/scons 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:
| |
| ** '''Ohjelmointikielet:''' [[C]], [[C++]], [[D]], [[Java,]] [[Fortran]], [[Objective-C]], [[Qt]] ja [[SWIG]].
| |
| ** '''Muut:''' [[Yacc]], [[Lex]], [[TeX]]- ja [[LaTeX]]-dokumentit.
| |
| | |
| * '''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)
| |
| | |
| [[Luokka:Kehitystyökalut]]
| |