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.
Macros disponíveis
Você vai, de forma geral, fazer uso das seguintes em seus specs:
%meson-
Define CFLAGS, LDFLAGS, etc. e chama
%__mesoncom parâmetros apropriados (--libdir=%{_libdir}e outros). Você pode passar-Dopção=valorpara 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
Veja também Definindo diretórios de origem e de construção.
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
%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.
Want to help? Learn how to contribute to Fedora Docs ›