Diretrizes de Empacotamento de Meson

Este documento fornece as melhores práticas para o uso de o sistema de construção Meson em pacotes Fedora. Meson é um sistema de construção (semelhante ao automake) que pode gerar código para outros sistemas de construção de nível inferior. Por exemplo, ele pode gerar código para ninja. Ao empacotar software que é construído usando Meson, é importante usar as macros %meson em vez de %ninja ou outras macros de sistema de construção inferior diretamente. O backend usado pelo Meson pode mudar.

Dependências de construção

Você DEVE adicionar as seguintes BuildRequires:

BuildRequires: meson

Macros disponíveis

Você vai, de forma geral, fazer uso das seguintes em seus specs:

%meson

Define CFLAGS, LDFLAGS, etc. e chama %__meson com parâmetros apropriados (--libdir=%{_libdir} e outros). Você pode passar -Dopção=valor para esta macro para definir opções para o sistema de construção.

%meson_build

Um apelido para %ninja_build -C %{_vpath_builddir}.

%meson_install

Um apelido para %ninja_install -C %{_vpath_builddir}.

%meson_test

Um apelido para %ninja_test -C %{_vpath_builddir}.

Raramente é necessário (mas permitido) usar ou alterar estes:

%__meson

O caminho para o executável do meson

Exemplo de arquivo spec 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

%build
%meson
%meson_build

%install
%meson_install

%check
%meson_test

%files
%{_libdir}/lib%{name}.so.*

%files devel
%{_libdir}/lib%{name}.so
%{_includedir}/%{name}.h