Directives relatives à la création de paquets Meson
Ce document contient les bonnes pratiques pour l’utilisation du système de compilation Meson dans les paquets Fedora. Meson est un système de compilation (similaire à automake) qui peut générer du code destiné à d’autres systèmes de compilation de plus bas niveau. Par exemple, il peut générer du code pour ninja. En créant des paquets Fedora pour des logiciels compilés à l’aide de Meson, il est important d’utiliser les macros %meson
à la place des macros %ninja
ou des macros des autres systèmes de compilation, car le backend utilisé par Meson pourrait varier.
Macros disponibles
Dans vos specs, vous utiliserez généralement les macros suivantes :
%meson
-
Définit CFLAGS, LDFLAGS, etc. et appelle
%__meson
avec les paramètres appropriés (--libdir=%{_libdir}
et autres). Vous pouvez passer-Doption=value
à cette macro afin de définir des options pour le système de compilation. %meson_build
-
Un alias pour
%ninja_build -C %{_vpath_builddir}
. %meson_install
-
Un alias pour
%ninja_install -C %{_vpath_builddir}
. %meson_test
-
Un alias pour
%ninja_test -C %{_vpath_builddir}
.
Il est rarement nécessaire (mais permis) d’utiliser ou d’altérer les macros suivantes :
%__meson
-
Le chemin vers l’exécutable meson.
Fichier spec RPM d’exemple
%global _vpath_srcdir sdk/%{name}/projects/meson Name: angelscript Version: 2.31.1 Release: 1%{?dist} Summary: Flexible cross-platform scripting library License: zlib URL: https://www.angelcode.com/angelscript/ Source: %{url}sdk/files/%{name}_%{version}.zip BuildRequires: meson BuildRequires: gcc %package devel Summary: Development libraries and header files for %{name} Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} %description devel %{summary}. %prep %autosetup -c %build %meson %meson_build %install %meson_install %check %meson_test %files %{_libdir}/lib%{name}.so.* %files devel %{_libdir}/lib%{name}.so %{_includedir}/%{name}.h
Want to help? Learn how to contribute to Fedora Docs ›