Meson-paketoinnin ohjeet

Tämä dokumentti tarjoaa parhaat käytännöt Meson-koontijärjestelmä -sivuston käyttöön Fedora-paketeissa. Meson on käännösjärjestelmä (samanlainen kuin automake), joka voi luoda koodia muille alemman tason käännösjärjestelmille. Se voi esimerkiksi luoda koodia ninja-sivustolle. Kun paketoidaan ohjelmistoja, jotka kääntyvät Mesonilla, on tärkeää käyttää %meson-makroja %ninja-makrojen tai muiden alemman tason käännösjärjestelmämakrojen sijaan. Mesonin käyttämä taustajärjestelmä voi muuttua.

Riippuvuuksien rakentaminen

Sinun TÄYTYY lisätä seuraavat BuildRequires:

BuildRequires: meson

Saatavilla olevat makrot

Yleensä käytät näitä teknisissä tiedotteissasi:

%meson

Defines CFLAGS, LDFLAGS, etc. and calls %__meson with appropriate parameters (--libdir=%{_libdir} and such). You can pass -Doption=value to this macro in order to set options for the buildsystem.

%meson_build

An alias for %ninja_build -C %{_vpath_builddir}.

%meson_install

An alias for %ninja_install -C %{_vpath_builddir}.

%meson_test

An alias for %ninja_test -C %{_vpath_builddir}.

Näiden käyttö tai muokkaaminen on harvoin välttämätöntä (mutta sallittua):

%__meson

The path to the meson executable

Example RPM spec file

%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

NOTE: If building for < EPEL 10 then %meson should be in %build.