%__meson %{_bindir}/meson
%__meson_wrap_mode nodownload
%__meson_auto_features enabled
%__meson_verbose 1

%meson \
    %set_build_flags \
    %{shrink:%{__meson} setup \
        --buildtype=plain \
        --prefix=%{_prefix} \
        --libdir=%{_libdir} \
        --libexecdir=%{_libexecdir} \
        --bindir=%{_bindir} \
        --sbindir=%{_sbindir} \
        --includedir=%{_includedir} \
        --datadir=%{_datadir} \
        --mandir=%{_mandir} \
        --infodir=%{_infodir} \
        --localedir=%{_datadir}/locale \
        --sysconfdir=%{_sysconfdir} \
        --localstatedir=%{_localstatedir} \
        --sharedstatedir=%{_sharedstatedir} \
        --wrap-mode=%{__meson_wrap_mode} \
        --auto-features=%{__meson_auto_features} \
        %{_vpath_srcdir} %{_vpath_builddir} \
        %{nil}}

%meson_build \
    %{shrink:%{__meson} compile \
        -C %{_vpath_builddir} \
        -j %{_smp_build_ncpus} \
        %{?__meson_verbose:--verbose} \
        %{nil}}

%meson_install \
    %{shrink:DESTDIR=%{buildroot} %{__meson} install \
        -C %{_vpath_builddir} \
        --no-rebuild \
        %{!?__meson_verbose:--quiet} \
        %{nil}}

%meson_test \
    %{shrink:%{__meson} test \
        -C %{_vpath_builddir} \
        --num-processes %{_smp_build_ncpus} \
        --print-errorlogs \
        %{nil}}

# Declarative buildsystem, requires RPM 4.20+ to work
# https://rpm-software-management.github.io/rpm/manual/buildsystem.html
%buildsystem_meson_conf() %meson %*
%buildsystem_meson_generate_buildrequires() %{nil}
%buildsystem_meson_build() %meson_build %*
%buildsystem_meson_install() %meson_install %*
%buildsystem_meson_check() %meson_test %*
