2024-03-29 08:12:19 +01:00
|
|
|
#
|
|
|
|
# This helper is for templates using meson.
|
|
|
|
#
|
|
|
|
|
|
|
|
do_configure() {
|
|
|
|
: ${meson_cmd:=meson}
|
|
|
|
: ${meson_builddir:=build}
|
|
|
|
: ${meson_crossfile:="${XBPS_WRAPPERDIR}/meson/xbps_meson.cross"}
|
|
|
|
|
|
|
|
if [ "$CROSS_BUILD" ]; then
|
|
|
|
configure_args+=" --cross-file=${meson_crossfile}"
|
|
|
|
fi
|
|
|
|
|
|
|
|
# binutils ar needs a plugin when LTO is used on static libraries, so we
|
|
|
|
# have to use the gcc-ar wrapper that calls the correct plugin.
|
|
|
|
# As seen in https://github.com/mesonbuild/meson/issues/1646 (and its
|
|
|
|
# solution, https://github.com/mesonbuild/meson/pull/1649), meson fixed
|
|
|
|
# issues with static libraries + LTO by defaulting to gcc-ar themselves.
|
|
|
|
# We also force gcc-ar usage in the crossfile above.
|
|
|
|
export AR="gcc-ar"
|
|
|
|
|
|
|
|
# unbuffered output for continuous logging
|
2024-08-19 02:58:18 +02:00
|
|
|
${meson_cmd} setup \
|
2024-03-29 08:12:19 +01:00
|
|
|
--prefix=/usr \
|
|
|
|
--libdir=/usr/lib${XBPS_TARGET_WORDSIZE} \
|
|
|
|
--libexecdir=/usr/libexec \
|
|
|
|
--bindir=/usr/bin \
|
|
|
|
--sbindir=/usr/bin \
|
|
|
|
--includedir=/usr/include \
|
|
|
|
--datadir=/usr/share \
|
|
|
|
--mandir=/usr/share/man \
|
|
|
|
--infodir=/usr/share/info \
|
|
|
|
--localedir=/usr/share/locale \
|
|
|
|
--sysconfdir=/etc \
|
|
|
|
--localstatedir=/var \
|
|
|
|
--sharedstatedir=/var/lib \
|
|
|
|
--buildtype=plain \
|
|
|
|
--auto-features=auto \
|
|
|
|
--wrap-mode=nodownload \
|
|
|
|
-Db_lto=true -Db_ndebug=true \
|
|
|
|
-Db_staticpic=true \
|
|
|
|
${configure_args} . ${meson_builddir}
|
|
|
|
}
|
|
|
|
|
|
|
|
do_build() {
|
|
|
|
: ${make_cmd:=ninja}
|
|
|
|
: ${make_build_target:=all}
|
|
|
|
: ${meson_builddir:=build}
|
|
|
|
|
|
|
|
${make_cmd} -C ${meson_builddir} ${makejobs} ${make_build_args} ${make_build_target}
|
|
|
|
}
|
|
|
|
|
|
|
|
do_check() {
|
2024-08-19 02:58:18 +02:00
|
|
|
: ${make_cmd:=meson}
|
2024-03-29 08:12:19 +01:00
|
|
|
: ${make_check_target:=test}
|
|
|
|
: ${meson_builddir:=build}
|
|
|
|
|
2024-08-19 02:58:18 +02:00
|
|
|
${make_check_pre} ${make_cmd} ${make_check_target} -C ${meson_builddir} ${makejobs} ${make_check_args}
|
2024-03-29 08:12:19 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
do_install() {
|
|
|
|
: ${make_cmd:=ninja}
|
|
|
|
: ${make_install_target:=install}
|
|
|
|
: ${meson_builddir:=build}
|
|
|
|
|
|
|
|
DESTDIR=${DESTDIR} ${make_cmd} -C ${meson_builddir} ${make_install_args} ${make_install_target}
|
|
|
|
}
|