diff options
| -rw-r--r-- | eclass/cmake-utils.eclass | 34 | ||||
| -rw-r--r-- | eclass/kde4-base.eclass | 22 | ||||
| -rw-r--r-- | eclass/kde4-meta.eclass | 10 |
3 files changed, 41 insertions, 25 deletions
diff --git a/eclass/cmake-utils.eclass b/eclass/cmake-utils.eclass index 1c03ff75819..4d87b85acb2 100644 --- a/eclass/cmake-utils.eclass +++ b/eclass/cmake-utils.eclass @@ -293,16 +293,6 @@ SET (CMAKE_CXX_COMPILER $(type -P $(tc-getCXX)) CACHE FILEPATH "C++ compiler" FO SET (CMAKE_CXX_COMPILE_OBJECT "<CMAKE_CXX_COMPILER> <DEFINES> ${CPPFLAGS} <FLAGS> -o <OBJECT> -c <SOURCE>" CACHE STRING "C++ compile command" FORCE) _EOF_ - # Common configure parameters (overridable) - # NOTE CMAKE_BUILD_TYPE can be only overriden via CMAKE_BUILD_TYPE eclass variable - # No -DCMAKE_BUILD_TYPE=xxx definitions will be in effect. - local cmakeargs=" - -DCMAKE_INSTALL_PREFIX=${PREFIX:-/usr} - ${mycmakeargs} - -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} - -DCMAKE_INSTALL_DO_STRIP=OFF - -DCMAKE_USER_MAKE_RULES_OVERRIDE=${build_rules}" - # Common configure parameters (invariants) local common_config="${TMPDIR}"/gentoo_common_config.cmake local libdir=$(get_libdir) @@ -310,13 +300,29 @@ cat > ${common_config} << _EOF_ SET (LIB_SUFFIX ${libdir/lib} CACHE STRING "library path suffix" FORCE) _EOF_ [[ -n ${CMAKE_NO_COLOR} ]] && echo 'SET (CMAKE_COLOR_MAKEFILE OFF CACHE BOOL "pretty colors during make" FORCE)' >> ${common_config} - cmakeargs="-C ${common_config} ${cmakeargs}" + + # Convert mycmakeargs to an array, for backwards compatibility + if [[ $(declare -p mycmakeargs) != "declare -a mycmakeargs="* ]]; then + mycmakeargs=(${mycmakeargs}) + fi + + # Common configure parameters (overridable) + # NOTE CMAKE_BUILD_TYPE can be only overriden via CMAKE_BUILD_TYPE eclass variable + # No -DCMAKE_BUILD_TYPE=xxx definitions will be in effect. + local cmakeargs=( + -C "${common_config}" + -DCMAKE_INSTALL_PREFIX="${PREFIX:-/usr}" + "${mycmakeargs[@]}" + -DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" + -DCMAKE_INSTALL_DO_STRIP=OFF + -DCMAKE_USER_MAKE_RULES_OVERRIDE="${build_rules}" + ) mkdir -p "${CMAKE_BUILD_DIR}" pushd "${CMAKE_BUILD_DIR}" > /dev/null - debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: mycmakeargs is $cmakeargs" - echo cmake ${cmakeargs} "${CMAKE_USE_DIR}" - cmake ${cmakeargs} "${CMAKE_USE_DIR}" || die "cmake failed" + debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: mycmakeargs is ${cmakeargs[*]}" + echo cmake "${cmakeargs[@]}" "${CMAKE_USE_DIR}" + cmake "${cmakeargs[@]}" "${CMAKE_USE_DIR}" || die "cmake failed" popd > /dev/null } diff --git a/eclass/kde4-base.eclass b/eclass/kde4-base.eclass index da030ba4496..f31fee2c877 100644 --- a/eclass/kde4-base.eclass +++ b/eclass/kde4-base.eclass @@ -551,10 +551,10 @@ kde4-base_src_configure() { debug-print-function ${FUNCNAME} "$@" # Build tests in src_test only, where we override this value - local cmakeargs="-DKDE4_BUILD_TESTS=OFF" + local cmakeargs=(-DKDE4_BUILD_TESTS=OFF) if has kdeenablefinal ${IUSE//+} && use kdeenablefinal; then - cmakeargs+=" -DKDE4_ENABLE_FINAL=ON" + cmakeargs+=(-DKDE4_ENABLE_FINAL=ON) fi if has debug ${IUSE//+} && use debug; then @@ -566,10 +566,10 @@ kde4-base_src_configure() { fi # Set distribution name - [[ ${PN} = kdelibs ]] && cmakeargs+=" -DKDE_DISTRIBUTION_TEXT=Gentoo" + [[ ${PN} = kdelibs ]] && cmakeargs+=(-DKDE_DISTRIBUTION_TEXT=Gentoo) # Here we set the install prefix - cmakeargs+=" -DCMAKE_INSTALL_PREFIX=${PREFIX}" + cmakeargs+=(-DCMAKE_INSTALL_PREFIX="${PREFIX}") # Use colors QTEST_COLORED=1 @@ -585,20 +585,24 @@ kde4-base_src_configure() { LDPATH="${KDEDIR}/$(get_libdir):${LDPATH}" # Append full RPATH - cmakeargs+=" -DCMAKE_SKIP_RPATH=OFF" + cmakeargs+=(-DCMAKE_SKIP_RPATH=OFF) # Set cmake prefixes to allow buildsystem to locate valid KDE installation # when more are present - cmakeargs+=" -DCMAKE_SYSTEM_PREFIX_PATH=${KDEDIR}" + cmakeargs+=(-DCMAKE_SYSTEM_PREFIX_PATH="${KDEDIR}") fi # Handle kdeprefix in application itself if ! has kdeprefix ${IUSE//+} || ! use kdeprefix; then # If prefix is /usr, sysconf needs to be /etc, not /usr/etc - cmakeargs+=" -DSYSCONF_INSTALL_DIR=${EROOT}etc" + cmakeargs+=(-DSYSCONF_INSTALL_DIR="${EROOT}"etc) fi - mycmakeargs="${cmakeargs} ${mycmakeargs}" + if [[ $(declare -p mycmakeargs) != "declare -a mycmakeargs="* ]]; then + mycmakeargs=(${mycmakeargs}) + fi + + mycmakeargs=("${cmakeargs[@]}" "${mycmakeargs[@]}") cmake-utils_src_configure } @@ -619,7 +623,7 @@ kde4-base_src_test() { debug-print-function ${FUNCNAME} "$@" # Override this value, set in kde4-base_src_configure() - mycmakeargs+=" -DKDE4_BUILD_TESTS=ON" + mycmakeargs+=(-DKDE4_BUILD_TESTS=ON) cmake-utils_src_configure kde4-base_src_compile diff --git a/eclass/kde4-meta.eclass b/eclass/kde4-meta.eclass index 5f0cce966eb..32990b17faa 100644 --- a/eclass/kde4-meta.eclass +++ b/eclass/kde4-meta.eclass @@ -638,16 +638,22 @@ kde4-meta_change_cmakelists() { kde4-meta_src_configure() { debug-print-function ${FUNCNAME} "$@" + # backwards-compatibility: make mycmakeargs an array, if it isn't already + if [[ $(declare -p mycmakeargs) != "declare -a mycmakeargs="* ]]; then + mycmakeargs=(${mycmakeargs}) + fi + # Set some cmake default values here (usually workarounds for automagic deps) case ${KMNAME} in kdewebdev) - mycmakeargs=" + mycmakeargs=( -DWITH_KdepimLibs=OFF -DWITH_LibXml2=OFF -DWITH_LibXslt=OFF -DWITH_Boost=OFF -DWITH_LibTidy=OFF - ${mycmakeargs}" + "${mycmakeargs[@]}" + ) ;; esac |
