--- trunk/core/include/cmake.sminc 2008/10/10 13:29:42 2 +++ trunk/include/cmake.sminc 2017/10/17 08:53:12 29886 @@ -96,6 +96,22 @@ echo "-DBUILD_${feature}=OFF" } +# install cmake opts +cmake_install() +{ + local feature="$1" + local option="$2" + echo "-DINSTALL_${feature}=${option}" +} + +# generic cmake opts +cmake_opt() +{ + local feature="$1" + local option="$2" + echo "-D${feature}=${option}" +} + cmake_src_prepare() { munpack ${SRCFILE} || die @@ -104,38 +120,87 @@ 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 + + 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-${abi} + cmake ${default_opts} ${configure_opts} ${SRCDIR}-${abi}/${SRCSUBDIR} || die + done + else + cd ${BUILDDIR}/build + cmake ${default_opts} ${configure_opts} ${SRCDIR}/${SRCSUBDIR} || die fi +} - cmake \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${PREFIX:-/usr} \ - -DLIB_SUFFIX=${libsuffix} \ - -DLIB_INSTALL_DIR=${PREFIX:-/usr}/$(mlibdir) \ - ${configure_opts} \ - ${SRCDIR} \ - || die +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} + cmake_setup_builddir || die cmake_configure || die mmake || die } +cmake_src_check() +{ + #cd ${BUILDDIR}/build + #mmake -j1 -k check || die + 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 ${SRCDIR} + cd ${BUILDDIR}/build make DESTDIR=${BINDIR} install || die + cd ${SRCDIR} local i for i in ABOUT-NLS AUTHORS BUGS CHANGES ChangeLog COPYING \ FAQ LICENSE NEWS README TODO @@ -147,4 +212,35 @@ done } -export_inherits cmake src_prepare src_compile 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