Ero sivun ”Scons” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
p luokitus
p Parempi ja luettavampi rakenne, myös malline
Rivi 1: Rivi 1:
SCons on tietotekniikassa käytetty ohjelmistojen rakennustyökalu, joka analysoi automaattisesti lähdekooditiedostojen riippuvuudet ja käyttöjärjestelmän sopeutumisvaatimukset ohjelmistoprojektin kuvauksesta. Se generoi lopulliset binääritiedostot asennettavaksi kohdekäyttöjärjestelmäalustalle. SCons toimii samankaltaisesti kuin perinteinen GNU:n rakennusjärjestelmä, joka perustuu make-työkaluun ja autoconf-työkaluihin. SCons luo projekti- ja prosessikonfiguraatiot Python-skriptien muodossa.
{{Ohjelma
| 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'''


SConsin tärkeimpiä ominaisuuksia ovat:
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.


Python-skriptit: Konfiguraatiotiedostot ovat Python-skriptejä, mikä tarkoittaa, että käyttäjä voi kirjoittaa omia skriptejään yleiskäyttöisen ohjelmointikielen avulla.
SConsin tärkein ero perinteisiin työkaluihin, kuten GNU:n make-järjestelmään, on sen perustuminen Python-skripteihin sekä luotettavaan riippuvuuksien hallintaan.
Automaattinen riippuvuusanalyysi: Sisäänrakennettu riippuvuusanalyysi C-, C+± ja Fortran-koodille. Riippuvuusanalyysiä voi laajentaa käyttäjän määrittelemillä riippuvuusskannereilla muille kielille tai tiedostotyypeille.
Tuki useille kielille: SCons tukee sisäänrakennettuna C-, C++, D-, Java-, Fortran-, Objective-C-, Yacc-, Lex-, Qt- ja SWIG-kieliä sekä TeX- ja LaTeX-dokumentteja. Lisäksi se voi käsitellä muita kieliä tai tiedostotyyppejä käyttäjän määrittelemien skriptien avulla.


Microsoft Visual Studio -tuki: SCons voi käyttää Microsoft Visual Studioa, mukaan lukien .dsp-, .dsw-, .sln- ja .vcproj-tiedostojen generointi.
== Keskeiset ominaisuudet ==
Muut ominaisuudet: SCons tunnistaa tiedostojen sisältömuutokset MD5-tunnisteiden avulla ja tukee rinnakkaista ohjelman kääntämistä.
SCons korvaa perinteiset ''make''- ja ''autoconf''-työkalut tarjoamalla yhtenäisen ja tehokkaamman ratkaisun.
SConsia käyttävät monet sovellukset, kuten The Battle for Wesnoth, Doom 3, MongoDB, OpenNebula, Wolfenstein: Enemy Territory, Godot ja monet muut


Huomaa, että SCons ei ole yleisesti käytetty termi, mutta se on tärkeä työkalu ohjelmistokehityksessä.
* '''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]]
[[Luokka:Kehitystyökalut]]

Versio 13. marraskuuta 2025 kello 23.01

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ä: