summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--eclass/cmake-utils.eclass34
-rw-r--r--eclass/kde4-base.eclass22
-rw-r--r--eclass/kde4-meta.eclass10
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