Meson

Meson on järjestelmä tietokoneohjelman konfigurointiin lähdekoodista ja käännösautomaatioon. Meson tukee useita hakemistoja eri käännöksiä varten samasta lähdekoodista. Meson on toteutettu Python 3:lla ja julkaistu Apache 2.0 -lisenssillä.

Järjestelmässä on oma konfiguraatiokieli, joka tukee ehtolauseita. Meson tukee C-, C++-, D-, Java- ja Vala-kielillä tehtyä lähdekoodia.

Projektin on aloittanut suomalainen fyysikko Jussi Pakkanen jouluna 2012 ja ensimmäinen julkaisu oli kaksi kuukautta myöhemmin. Järjestelmä on nimetty mesonihiukkasen mukaan. Kriteerinä nimelle oli, että vastaavalla nimellä ei saanut ennestään olla Debian-pakettia tai SourceForge-projektia ja esimerkiksi Gluon ei siksi kelvannut nimeksi.

 Taustaa 
Aikaisempi make oli hidas ja Makefile-syntaksi on ylläpidolle hankala. Evan Martin toteutti Ninja-työkalun make-ohjelman ongelmien vuoksi. Ninja ei toteuta eräitä asioita joita make-ohjelma toteutti vaan luottaa toisen ohjelman kuten Mesonin tuottamiin konfiguraatiotiedostoihin.

Mesonin konfiguraatiokieli ei ole Turing-täydellinen useiden syiden vuoksi, joista on yksi on mahdollinen työkalujen toteutuskielen vaihtaminen mikäli se osoittautuu pullonkaulaksi.

Meson pyrkii toistettaviin käännöksiin.https://mesonbuild.com/Reproducible-builds.html

 Esimerkki 
Esimerkki käännöksestä Meson-työkaluilla komentorivillä:
 $ cd ohjelma
 $ meson builddir
 $ cd builddir
 $ ninja
.. jossa ohjelma on hakemisto, jossa käännettävä ohjelma sijaitsee ja builddir on nimi käännöksen aikana käytettävälle hakemistolle.

meson tarkistaa saatavilla olevat riippuvuudet ja tekee tarvittavan konfiguraation käännöstä varten. Meson-järjestelmä ei salli käännöstä lähdekoodihakemistossa. ninja suorittaa varsinaisen käännöksen. Uudelleen kääntämiseen riittää komennon ninja ajaminen.

Oletuksena Meson käyttää Ninja-järjestelmää taustatyökaluna projektin kääntämiseen, mutta se tukee myös muita kuten Visual Studiota.
Ohjelmointiympäristö voi suorittaa kääntämisen Ninjan sijaan.

Käännöskonfiguraatio Mesonille voi olla seuraavankaltainen:
project('simple', 'c')
src = ['source1.c', 'source2.c', 'source3.c']
executable('myexe', src)

 Tuki 
Muun muassa X.Org-ohjelmisto on lisännyt tuen Meson-käännösjärjestelmälle vaihtoehtona GNU Autotoolsille. GNOME-projektilla on tavoitteena siirtyä Autotoolsista Meson-järjestelmään.

Muita Meson-järjestelmää käyttäviä projekteja ovat muun muassa Mesa 3D ja Wayland-projekti.

 Kirjallisuutta 


 Lähteet 

Luokka:Käännöstyökalut
Luokka:Käännösautomaatio