# $Header: /magellan-cvs/smage/include/cmake.sminc,v 1.9 2008/04/20 17:40:19 niro Exp $ # cmake config tools SDEPEND="${SDEPEND} >= dev-util/cmake-2.4.7" # enables features like --enable-blah with make cmake_enable() { local feature="$1" local option="$2" [[ -z ${option} ]] && option=ON echo "-DENABLE_${feature}=${option}" } # disables features like --disable-blah with make cmake_disable() { local feature="$1" echo "-DENABLE_${feature}=OFF" } # enables features like --with-blah with make cmake_with() { local feature="$1" local option="$2" [[ -z ${option} ]] && option=ON echo "-DWITH_${feature}=${option}" } # enables features like --with-blah with make cmake_without() { local feature="$1" echo "-DWITH_${feature}=OFF" } # tell cmake that we support a feature cmake_have() { local feature="$1" local option="$2" [[ -z ${option} ]] && option=ON echo "-DHAVE_${feature}=${option}" } # tell cmake that we don't support a feature cmake_have_not() { local feature="$1" echo "-DHAVE_${feature}=OFF" } # tell cmake that we want a feature cmake_want() { local feature="$1" local option="$2" [[ -z ${option} ]] && option=ON echo "-DWANT_${feature}=${option}" } # tell cmake that we don't want a feature cmake_want_not() { local feature="$1" echo "-DWANT_${feature}=OFF" } # tell cmake that we don't want a feature using -DNO cmake_no() { local feature="$1" echo "-DNO_${feature}=1" } # tell cmake that we forcefully build a feature cmake_build() { local feature="$1" local option="$2" [[ -z ${option} ]] && option=ON echo "-DBUILD_${feature}=${option}" } # tell cmake that we don't build a feature cmake_build_not() { local feature="$1" 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 } cmake_configure() { local configure_opts="$@" local default_opts local libsuffix="$(mlibdir)" local libsuffix="${libsuffix/lib}" # disable colors if requested if [[ ${NOCOLORS} = true ]] then 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-$(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} 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 ${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 do if [ -f ${SRCDIR}/${i} ] then minstalldocs ${i} || die fi done } 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