Pautas de Empaquetamiento Meson

Este documento proporciona las mejores prácticas para el uso de el sistema de compilación Meson en paquetes de Fedora. Meson es un sistema de compilación (similar a automake) que puede generar código para otros sistemas de compilación de bajo nivel. Por ejemplo, puede generar código para ninja. Al empaquetar software que se compila con Meson, es importante usar las macros %meson en lugar de %ninja u otras macros de sistemas de compilación de bajo nivel directamente. El backend utilizado por Meson podría cambiar.

Compilar Dependencias

DEBE añadir siguiendo BuildRequires:

BuildRequires: meson

Available Macros

You will generally make use of these in your specs:

%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}.

It is rarely necessary (but permissible) to use or alter these:

%__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.