--- trunk/include/cmake.sminc 2014/09/19 13:02:41 22307 +++ trunk/include/cmake.sminc 2017/10/12 13:32:14 29802 @@ -120,37 +120,55 @@ cmake_configure() { local configure_opts="$@" + local default_opts local libsuffix="$(mlibdir)" local libsuffix="${libsuffix/lib}" # disable colors if requested if [[ ${NOCOLORS} = true ]] then - configure_opts="${configure_opts} -DCMAKE_COLOR_MAKEFILE=OFF" + default_opts+=" -DCMAKE_COLOR_MAKEFILE=OFF" fi - cmake \ - -DCMAKE_VERBOSE_MAKEFILE=ON \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${PREFIX:-/usr} \ - -DLIB_SUFFIX=${libsuffix} \ - -DLIB_INSTALL_DIR=${PREFIX:-/usr}/$(mlibdir) \ - ${configure_opts} \ - ${SRCDIR}/${SRCSUBDIR} \ - || die + default_opts+=" -DCMAKE_VERBOSE_MAKEFILE=ON" + default_opts+=" -DCMAKE_BUILD_TYPE=Release" + default_opts+=" -DCMAKE_INSTALL_PREFIX=${PREFIX:-/usr}" + default_opts+=" -DLIB_SUFFIX=${libsuffix}" + default_opts+=" -DLIB_INSTALL_DIR=${PREFIX:-/usr}/$(mlibdir)" + + if [[ ${MULTILIB_BUILD} = true ]] + then + 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-$(mabi) + cmake ${default_opts} ${configure_opts} ${SRCDIR}-$(mabi)/${SRCSUBDIR} || die + done + else + cd ${BUILDDIR}/build + cmake ${default_opts} ${configure_opts} ${SRCDIR}/${SRCSUBDIR} || die + fi +} + +cmake_setup_builddir() +{ + if [[ ${MULTILIB_BUILD} = true ]] + then + all-abis install -d ${BUILDDIR}/build-$(mabi) || die + else + install -d ${BUILDDIR}/build || die + fi } cmake_src_compile() { cd ${SRCDIR} - # remove build dir if exist - [[ -d ${BUILDDIR}/build ]] && rm -rf ${BUILDDIR}/build - - # build outside of the source dir - install -d ${BUILDDIR}/build || die - cd ${BUILDDIR}/build - + cmake_setup_builddir || die cmake_configure || die mmake || die } @@ -162,6 +180,21 @@ return 0 } +cmake_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} + # mmake -j1 -k check || die + #done + return 0 +} + cmake_src_install() { cd ${BUILDDIR}/build @@ -179,4 +212,35 @@ done } -export_inherits cmake src_prepare src_compile src_check src_install +cmake_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} + make DESTDIR=${BINDIR} 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 cmake src_prepare src_compile +if [[ ${MULTILIB_BUILD} = true ]] +then + export_inherits cmake_multilib src_check src_install +else + export_inherits cmake src_check src_install +fi