diff options
author | Vlad Glagolev | 2022-07-23 16:17:41 +0000 |
---|---|---|
committer | Vlad Glagolev | 2022-07-23 16:17:41 +0000 |
commit | 981418e443b2f60bac56f0937ac1081b8ff9ec0f (patch) | |
tree | b62b53bddfc15995515e255d35e97e8a8128c3a2 /MESON_FUNCTIONS | |
parent | cec2a6ddf70e39928c8acd4e0c4f3f2082701a97 (diff) |
MESON_DEPENDS, MESON_FUNCTIONS: add muon support
Diffstat (limited to 'MESON_FUNCTIONS')
-rwxr-xr-x | MESON_FUNCTIONS | 68 |
1 files changed, 46 insertions, 22 deletions
diff --git a/MESON_FUNCTIONS b/MESON_FUNCTIONS index 352ed83038..ba1da14569 100755 --- a/MESON_FUNCTIONS +++ b/MESON_FUNCTIONS @@ -1,34 +1,58 @@ -# special functions for projects shich use meson build system -PREFIX=${PREFIX:-/usr} +# special functions for projects which use meson build system + +local PREFIX=${PREFIX:-/usr} + meson_build () { - MESON_BUILD_TYPE="${MESON_BUILD_TYPE:-release}" -# export LANG=$LC_ALL - cd $SOURCE_DIRECTORY -# do not put / before PREFIX - SCRIPT="meson --prefix ${INSTALL_ROOT}$PREFIX --buildtype ${MESON_BUILD_TYPE} \ - --default-library shared --libdir lib" - for LL in $OPTS; do - SCRIPT+=" -D$LL" - done - SCRIPT+=" . builddir/" - $SCRIPT && - - if is_depends_enabled "$SPELL" ninja-build-system; then - local NINJA=ninja + local MESON_BUILD_TYPE="${MESON_BUILD_TYPE:-release}" && + + local MESON_BUILD && + local MESON_OPTS && + local BUILDER && + local BUILDER_OPTS="-j ${MAKE_NJOBS} -C builddir/" && + + if [[ $(get_spell_provider ${SPELL} MESON-BUILD) == muon ]]; then + MESON_BUILD="muon setup" && + MESON_OPTS="prefix=${INSTALL_ROOT}${PREFIX} buildtype=${MESON_BUILD_TYPE} default-library=shared libdir=lib" + else + MESON_BUILD="meson" + 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 && - ${NINJA:-samu} -j "$MAKE_NJOBS" -C builddir/ + + for MO in $OPTS; do + MESON_OPTS+=" -D${MO}" + done && + + cd "${SOURCE_DIRECTORY}" && + + ${MESON_BUILD} ${MESON_OPTS} builddir/ && + + ${BUILDER} ${BUILDER_OPTS} } meson_install () { - cd $SOURCE_DIRECTORY - if is_depends_enabled "$SPELL" ninja-build-system; then - local NINJA=ninja + 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 && - ${NINJA:-samu} -C builddir/ install + + cd "${SOURCE_DIRECTORY}" && + + ${BUILDER} ${BUILDER_OPTS} install } default_build() { - meson_build + meson_build } default_install() { |