--- trunk/include/meson.sminc 2017/10/12 08:47:05 29787 +++ trunk/include/meson.sminc 2017/10/12 11:38:00 29793 @@ -19,7 +19,7 @@ meson_disable() { local feature="$1" - echo "-Denable_${feature}=false" + echo "-Denable-${feature}=false" } # enables features like --with-blah with make @@ -55,36 +55,52 @@ meson_configure() { local configure_opts="$@" + local default_opts - meson setup \ - --buildtype=release \ - --prefix=/usr \ - --sysconfdir=/etc \ - --localstatedir=/var/lib \ - --libdir=/usr/$(mlibdir) \ - --libexecdir=/usr/$(mlibdir)/${PNAME} \ - ${configure_opts} \ - ${SRCDIR}/${SRCSUBDIR} \ - || die + default_opts+=" --buildtype=release" + default_opts+=" --prefix=/usr" + default_opts+=" --sysconfdir=/etc" + default_opts+=" --localstatedir=/var/lib" + default_opts+=" --libdir=/usr/$(mlibdir)" + default_opts+=" --libexecdir=/usr/$(mlibdir)/${PNAME}" + + if [[ ${MULTILIB_BUILD} = true ]] + then + ABI_DO_NOT_ENTER_SRCDIR=false all-abis meson setup ${default_opts} ${configure_opts} ${SRCDIR}-$(mabi)/${SRCSUBDIR} || die + else + meson setup ${default_opts} ${configure_opts} ${SRCDIR}/${SRCSUBDIR} || die + fi } mninja() { - ninja -v ${MAKEOPTS} "$@" + if [[ ${MULTILIB_BUILD} = true ]] + then + all-abis ninja -C ${SRCDIR}-$(mabi)/${SRCSUBDIR} -v ${MAKEOPTS} "$@" + else + ninja -C ${SRCDIR}/${SRCSUBDIR} -v ${MAKEOPTS} "$@" + fi +} + +meson_setup_builddir() +{ + if [[ ${MULTILIB_BUILD} = true ]] + then + all-abis install -d ${BUILDDIR}/build-$(mabi) || die + else + install -d ${BUILDDIR}/build || die + fi } meson_src_compile() { - cd ${SRCDIR} - - # remove build dir if exist - [[ -d ${BUILDDIR}/build ]] && rm -rf ${BUILDDIR}/build + if [[ ${MULTILIB_BUILD} != true ]] + then + cd ${SRCDIR} + fi - # build outside of the source dir - install -d ${BUILDDIR}/build || die - cd ${BUILDDIR}/build - - meson_configure || die + meson_setup_builddir || die + meson_configure "$@" || die mninja || die } @@ -94,6 +110,20 @@ meson test || die } +meson_multilib_src_check() +{ + local abi + local abis_to_run="${MULTILIB_ABIS}" + + # respect MULTILIB_ONLY_ABI variable + [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}" + for abi in ${abis_to_run} + do + cd ${BUILDDIR}/build-${abi} + meson test || die + done +} + meson_src_install() { cd ${BUILDDIR}/build @@ -111,4 +141,35 @@ done } -export_inherits meson src_prepare src_compile src_check src_install +meson_multilib_src_install() +{ + local abi + local abis_to_run="${MULTILIB_ABIS}" + + # respect MULTILIB_ONLY_ABI variable + [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}" + for abi in ${abis_to_run} + do + cd ${BUILDDIR}/build-${abi} + DESTDIR=${BINDIR} ninja install || die + + cd ${SRCDIR}-${abi} + local i + for i in ABOUT-NLS AUTHORS BUGS CHANGES ChangeLog COPYING \ + FAQ LICENSE NEWS README TODO + do + if [ -f ${SRCDIR}-${abi}/${i} ] + then + minstalldocs ${i} || die + fi + done + done +} + +export_inherits meson src_prepare src_compile +if [[ ${MULTILIB_BUILD} = true ]] +then + export_inherits meson_multilib src_check src_install +else + export_inherits meson src_check src_install +fi