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
%__mesonmit entsprechenden Parametern auf (--libdir=%{_libdir}usw.). Sie können-DOption=Wertan 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 ›