Paketbaurichtlinien für Meson
Dieses Dokument beschreibt die beste Vorgehensweise für die Verwendung des https://mesonbuild.com/ [Meson-Build-Systems] in Fedora-Paketen. Meson ist ein Build-System (ähnlich wie Automake), das Code für andere Low-Level-Build-Systeme generieren kann. Beispielsweise kann es Code für Ninja generieren. Beim Paketieren von Software, die mit Meson erstellt wird, ist es wichtig, die Makros %meson
anstelle von %ninja
oder anderen Low-Level-Build-System-Makros direkt zu verwenden. Das von Meson verwendete Backend kann sich ändern.
Verfügbare Makros
Diese werden Sie in Ihren Spec-Dateien im Allgemeinen verwenden:
%meson
-
Definiert CFLAGS, LDFLAGS usw. und ruft
%__meson
mit entsprechenden Parametern auf (--libdir=%{_libdir}
usw.). Sie können-DOption=Wert
an dieses Makro übergeben, um Optionen für das Buildsystem festzulegen. %meson_build
-
Ein Alias für
%ninja_build -C %{_vpath_builddir}
. %meson_install
-
Ein Alias für
%ninja_install -C %{_vpath_builddir}
. %meson_test
-
Ein Alias für
%ninja_test -C %{_vpath_builddir}
.
Es ist selten notwendig (aber zulässig), diese zu verwenden oder zu ändern:
%__meson
-
Der Pfad zur ausführbaren »meson«-Datei
Siehe auch Definieren von Quell- und Bauverzeichnissen.
Beispiel einer RPM-Spec-Datei
%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 %conf %meson %build %meson_build %install %meson_install %check %meson_test %files %{_libdir}/lib%{name}.so.* %files devel %{_libdir}/lib%{name}.so %{_includedir}/%{name}.h
HINWEIS: Wenn für EPEL < 10 erstellt wird, sollte %meson
in %build
stehen.
Want to help? Learn how to contribute to Fedora Docs ›