Pautas de Empaquetado 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

Macros Disponibles

Generalmente, utilizarás estos en tus especificaciones:

%meson

Define CFLAGS, LDFLAGS, etc. e invoca a %__meson con los parámetros adecuados (--libdir=%{_libdir} y tales). Puedes pasar -Doption=value a esta macro para configurar las opciones del sistema de compilación.

%meson_build

Un alias para %ninja_build -C %{_vpath_builddir}.

%meson_install

Un alias para %ninja_install -C %{_vpath_builddir}.

%meson_test

Un alias para %ninja_test -C %{_vpath_builddir}.

Es raramente necesario (pero permisible) utilizar o alterar estos:

%__meson

La ruta para el meson ejecutable

Ejemplo de archivo spec de RPM

%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

NOTA: Si compila para < EPEL 10 entonces %meson estaría en %build.