# special functions for projects which use meson build system meson_build () { local PREFIX=${PREFIX:-/usr} local MESON_BUILD_TYPE="${MESON_BUILD_TYPE:-release}" && local MESON_BUILD && local MESON_OPTS && local BUILDER && local BUILDER_OPTS="-j $((${#DISTCC_HOSTS[*]} * JOBS_PER_HOST + MAKE_NJOBS)) -C builddir/" && if [[ $(get_spell_provider ${SPELL} MESON-BUILD) == muon ]]; then MESON_BUILD="muon setup" && OPTS="prefix=${INSTALL_ROOT}${PREFIX} buildtype=${MESON_BUILD_TYPE} default_library=shared libdir=lib ${OPTS}" else MESON_BUILD="meson setup" MESON_OPTS="--prefix ${INSTALL_ROOT}${PREFIX} --buildtype ${MESON_BUILD_TYPE} --default-library shared --libdir lib" fi && if ! is_depends_enabled ${SPELL} $(get_spell_provider ${SPELL} NINJA-BUILD); then BUILDER="muon samu" elif [[ $(get_spell_provider ${SPELL} NINJA-BUILD) == samurai ]]; then BUILDER="samu" else BUILDER="ninja" fi && for MO in $OPTS; do MESON_OPTS+=" -D${MO}" done && cd "${SOURCE_DIRECTORY}" && ${MESON_BUILD} ${MESON_OPTS} builddir/ && ${BUILDER} ${BUILDER_OPTS} } meson_install () { local MESON_INSTALL && local MESON_OPTS && local EXTRA_OPTS="${@}" && if [[ $(get_spell_provider ${SPELL} MESON-BUILD) == muon ]]; then MESON_INSTALL="muon" MESON_OPTS="-C builddir/ install ${EXTRA_OPTS}" else MESON_INSTALL="meson" MESON_OPTS="install -C builddir/ --no-rebuild ${EXTRA_OPTS}" fi && cd "${SOURCE_DIRECTORY}" && DESTDIR="${INSTALL_ROOT}/" ${MESON_INSTALL} ${MESON_OPTS} } default_build() { meson_build } default_install() { meson_install }