Ero sivun ”Meson” versioiden välillä
Siirry navigaatioon
Siirry hakuun
päivitys |
p Mesonin tiedostot ja koodi esimerkki |
||
| Rivi 38: | Rivi 38: | ||
Meson-projekti määritellään kahden pääasiallisen tiedoston kautta: | Meson-projekti määritellään kahden pääasiallisen tiedoston kautta: | ||
* '''1. meson.build:''' Pääasiallinen rakennusmääritystiedosto, joka kuvaa, mitä tiedostoja projektissa on ja miten ne käännetään. | * '''1. meson.build:''' Pääasiallinen rakennusmääritystiedosto, joka kuvaa, mitä tiedostoja projektissa on ja miten ne käännetään. | ||
Koodiesimerkki Hei maailma! ''main.c'' | |||
<syntaxhighlight lang="C"> | |||
#include <stdio.h> | |||
#ifdef DEBUG | |||
printf("Debug mode is enabled!\n"); | |||
#endif | |||
int main(void) { | |||
printf("Hei, Maailma!\n"); | |||
return 0; | |||
} | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="meson"> | |||
meson project('Hei', 'c') # Määrittelee projektin nimen (Hei) ja käytettävän kielen (c). | |||
executable('hei', 'main.c') # Luo ajettavan ohjelman nimeltä hei, joka käännetään tiedostosta main.c. | |||
</syntaxhighlight> | |||
* ''' 2. meson_options.txt:''' Määrittelee projektiin liittyvät käännösvaihtoehdot, joita käyttäjä voi muuttaa. | * ''' 2. meson_options.txt:''' Määrittelee projektiin liittyvät käännösvaihtoehdot, joita käyttäjä voi muuttaa. | ||
Tässä on Hei maailma! esimerkki, miten ''meson_options.txt''-tiedostoa voi käyttää yhdessä ''meson.build''-tiedoston kanssa: | |||
''meson_options.txt'' tiedosto määrittelee projektin käännösvaihtoehtoja, joita käyttäjä voi muuttaa konfigurointivaiheessa. | |||
<syntaxhighlight lang="text"> | |||
option('debug_mode', type: 'boolean', value: false, description: 'Enable debug output') | |||
option('optimization_level', type: 'combo', choices: ['0', '1', '2', '3'], value: '2', description: 'Set compiler optimization level') | |||
</syntaxhighlight> | |||
meson.build | |||
Voit käyttää näitä valintoja projektissa näin: | |||
<syntaxhighlight lang="text"> | |||
project('Hei', 'c') | |||
# Haetaan käyttäjän valinnat | |||
debug_mode = get_option('debug_mode') | |||
opt_level = get_option('optimization_level') | |||
executable('hei', 'main.c', | |||
c_args: ['-O' + opt_level] + (debug_mode ? ['-DDEBUG'] : []) | |||
) | |||
</syntaxhighlight> | |||
Kun konfiguroit projektin, voit antaa valinnat komentorivillä: | |||
meson setup builddir -Ddebug_mode=true -Doptimization_level=3 | |||
Tämä kääntää ohjelman -O3 optimoinnilla ja lisää -DDEBUG-määrittelyn, jolloin koodissa voi käyttää esimerkiksi: | |||
<syntaxhighlight lang="c"> | |||
#ifdef DEBUG | |||
printf("Debug mode is enabled!\n"); | |||
#endif | |||
</syntaxhighlight> | |||
== Käyttö == | == Käyttö == | ||