Modifier

Depuis peu, le logiciel meson a fait son apparition et vient dans de nombreux projet remplacer automake. Meson permet donc d'automatiser la compilation d'un programme. Aprés mettre arraché les cheveux avec automake pour mon premier projet, j'ai décidé de changer de cheval et de tester le nouveau venu.

sudo apt install meson

Personnellement, je trouve Meson beaucoup plus facile à mettre en place. La doc est bien faite et on arrive rapidement à organiser une compilation pour tester son projet.

Le code reste simple notamment pour la gestion des dépendance comme la SDL et pour les options GCC de compilation. Un seul fichier suffit contrairement à automake où il en faut souvent un par dossier. Voici un exemple de fichier meson.build.

project('myGame','cpp', default_options: ['c_std=gnu11','cpp_std=c++11',])

##gcc options:
add_global_arguments('-Wall', '-Wextra','-Wno-deprecated-declarations','-g',language:'cpp')

sdl2_dep = dependency('sdl2')
sdl2_image_dep = dependency('SDL2_image')
sdl2_ttf_dep = dependency('SDL2_ttf')
sdl2_gfx_dep = dependency('SDL2_gfx')
libxml_dep = dependency('libxml++-2.6')

all_dep = [ sdl2_dep, sdl2_image_dep, sdl2_ttf_dep, sdl2_gfx_dep, libxml_dep ]

all_src = ['src/settings.cpp',
    'src/time.cpp',
    'src/surfaces.cpp',
    'src/pathfinding.cpp',
    'src/grid.cpp',
     'src/window.cpp',
     'src/menu.cpp',
     'src/main.cpp']

exe = executable('demo',
    install : true,
    sources : all_src,
    dependencies : all_dep)

Sans avoir une grande connaissance, on peut facilement mettre en place une compilation basique pour un gros projet et sans y passer trop de temps.

Pour construire le projet une premier fois :

meson build

Pour lancer une compilation :

ninja -C build

et enfin tester l'application en question :

./build/demo

Simple et efficace.

Je n'ai pas regardé pour une installation compléte, avec placement des dossiers au bons endroits, icônes et raccourcis, mais globalement le processus est plus rapide et plus simple à mettre en place pour un débutant comme moi.

Pour info, beaucoup de gros projet migrent vers Meson notamment tous les projets Gnome... Ce qui est un signe de plus que Meson est l'avenir de la compilation.

Posts en relation

Articles récents