From 13c8c58e654a1b84fd14e6b93544c9333ce516cb Mon Sep 17 00:00:00 2001 From: "Tomas Chvatal (scarabeus)" Date: Sun, 26 Oct 2008 15:24:14 +0100 Subject: Remove koffice and eclasses because this crazy stuff will be done in kde-crazy. --- eclass/kde4-base.eclass | 814 ------------------------------------------- eclass/kde4-functions.eclass | 570 ------------------------------ eclass/kde4-meta.eclass | 746 --------------------------------------- 3 files changed, 2130 deletions(-) delete mode 100644 eclass/kde4-base.eclass delete mode 100644 eclass/kde4-functions.eclass delete mode 100644 eclass/kde4-meta.eclass (limited to 'eclass') diff --git a/eclass/kde4-base.eclass b/eclass/kde4-base.eclass deleted file mode 100644 index fa6ad2746cf..00000000000 --- a/eclass/kde4-base.eclass +++ /dev/null @@ -1,814 +0,0 @@ -# Copyright 2007-2008 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: $ - -# @ECLASS: kde4-base.eclass -# @MAINTAINER: -# kde@gentoo.org -# @BLURB: This eclass provides functions for kde 4.X ebuilds -# @DESCRIPTION: -# The kde4-base.eclass provides support for building KDE4 monolithic ebuilds -# and KDE4 applications. -# -# NOTE: This eclass uses the SLOT dependencies from EAPI="1" or compatible, -# and use deps from EAPI="2", hence you must define EAPI="2" in the ebuild, -# before inheriting any eclasses. - -inherit base cmake-utils eutils kde4-functions multilib - -case "${EAPI}" in - 2) - EXPORT_FUNCTIONS pkg_setup src_unpack src_configure src_compile src_test src_install pkg_postinst pkg_postrm - ;; - *) - EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_test src_install pkg_postinst pkg_postrm - ;; -esac - -# Set the qt dependencies -kde4-base_set_qt_dependencies() { - local qt qtcore qtgui qt3support qtdepend qtopengldepend - - # use dependencies - case "${EAPI}" in - 2 | 2_pre3 | 2_pre2 | 2_pre1) - - qt="[" - case "${OPENGL_REQUIRED}" in - always) - qt="${qt}opengl," - ;; - optional) - qt="${qt}opengl?," - ;; - esac - qt="${qt}accessibility,dbus,gif,jpeg,png,qt3support,ssl,zlib]" - qtcore="[qt3support,ssl]" - qtgui="[accessibility,dbus]" - qt3support="[accessibility]" - ;; - esac - - # split qt - qtdepend=" - x11-libs/qt-core:4${qtcore} - x11-libs/qt-gui:4${qtgui} - x11-libs/qt-qt3support:4${qt3support} - x11-libs/qt-script:4 - x11-libs/qt-svg:4 - x11-libs/qt-test:4" - qtopengldepend="x11-libs/qt-opengl:4" - - # allow monolithic qt for PV < 4.1 - case "${PV}" in - scm|9999*|4.2*|4.1.9*|4.1.8*|4.1.7*|4.1.6*|4.1*|4.0.9*|4.0.8*) : ;; - *) - qtdepend="|| ( ( ${qtdepend} ) >=x11-libs/qt-4.3.3:4${qt} )" - qtopengldepend="|| ( ${qtopengldepend} >=x11-libs/qt-4.3.3:4 )" - ;; - esac - - # opengl dependencies - case "${OPENGL_REQUIRED}" in - always) - qtdepend="${qtdepend} - ${qtopengldepend}" - ;; - optional) - IUSE="${IUSE} opengl" - qtdepend="${qtdepend} - opengl? ( ${qtopengldepend} )" - ;; - *) - OPENGL_REQUIRED="never" - ;; - esac - - COMMONDEPEND="${COMMONDEPEND} ${qtdepend}" -} -kde4-base_set_qt_dependencies - -# Set the cmake dependencies -case "${PV}" in - 9999*|4.2*|4.1.9*|4.1.8*|4.1.7*|4.1.6*) - CMAKEDEPEND=">=dev-util/cmake-2.6" - ;; - *) - CMAKEDEPEND=">=dev-util/cmake-2.4.7-r1" - ;; -esac - -# Set the common dependencies -DEPEND="${DEPEND} ${COMMONDEPEND} ${CMAKEDEPEND} - dev-util/pkgconfig - x11-libs/libXt - x11-proto/xf86vidmodeproto" -RDEPEND="${RDEPEND} ${COMMONDEPEND}" - -# Add the kdeprefix use flag -case "${EAPI}" in - 2 | 2_pre3 | 2_pre2 | 2_pre1) - [[ "${NEED_KDE}" != "any" ]] && IUSE="${IUSE} kdeprefix" - ;; -esac - -# @ECLASS-VARIABLE: OPENGL_REQUIRED -# @DESCRIPTION: -# Is qt-opengl required? Possible values are 'always', 'optional' and 'never'. -# This variable must be set before inheriting any eclasses. Defaults to 'never'. -OPENGL_REQUIRED="${OPENGL_REQUIRED:-never}" - -# @ECLASS-VARIABLE: CPPUNIT_REQUIRED -# @DESCRIPTION: -# Is cppunit required for tests? Possible values are 'always', 'optional' and 'never'. -# This variable must be set before inheriting any eclasses. Defaults to 'never'. -CPPUNIT_REQUIRED="${CPPUNIT_REQUIRED:-never}" - -case "${CPPUNIT_REQUIRED}" in - always) - DEPEND="${DEPEND} dev-util/cppunit" - ;; - optional) - IUSE="${IUSE} test" - DEPEND="${DEPEND} - test? ( dev-util/cppunit )" - ;; - *) - CPPUNIT_REQUIRED="never" - ;; -esac - -# @ECLASS-VARIABLE: NEED_KDE -# @DESCRIPTION: -# This variable sets the version of KDE4 which will be used by the eclass. -# This variable must be set by the ebuild, for all categories except for "kde-base". -# For kde-base packages, if it is not set by the ebuild, -# it's assumed that the required KDE4 version is the latest, non-live, available. -# -# @CODE -# Acceptable values are: -# - latest - Use latest version in the portage tree -# Default for kde-base ebuilds. Banned for ebuilds not part of kde or koffice. -# - live - Use live release (live ebuilds) -# - :SLOT - Use any version in the SLOT specified in the NEED_KDE value. -# - VERSION_NUMBER - Use the minimum KDE4 version specified in the NEED_KDE value. -# - VERSION_NUMBER:SLOT - Use the minimum KDE4 version and the SLOT specified in the NEED_KDE value. -# - none - Let the ebuild handle SLOT, kde dependencies, KDEDIR, ... -# @CODE -# -# Note: There is no default NEED_KDE for ebuilds not in kde-base or part of -# koffice, so you must set it explicitly in the ebuild, in all other cases. -if [[ -z ${NEED_KDE} ]]; then - if [[ -n ${KDEBASE} ]]; then - NEED_KDE="latest" - else - die "kde4-base.eclass inherited but NEED_KDE not defined - broken ebuild" - fi -fi -export NEED_KDE - -case ${NEED_KDE} in - any) - _kdedir="" - _operator=">=" - _pv="-3.9" # we do not specify version only that it needs 4 - # kdedir is not set and it needs to be detected (maybe fallback for - # latest version availible) - ;; - latest) - # Should only be used by 'kde-base'-ebuilds - if [[ "${KDEBASE}" == "kde-base" ]]; then - case ${PV} in - 4.2* | 4.1.9* | 4.1.8* | 4.1.7* | 4.1.6*) - _kdedir="4.2" - _pv="-${PV}:4.2" ;; - 4.1*| 4.0.9* | 4.0.8*) - _kdedir="4.1" - _pv="-${PV}:4.1" ;; - 4.0*) - _kdedir="4.0" - _pv="-${PV}:kde-4" ;; - 3.9*) - _kdedir="3.9" - _pv="-${PV}:kde-4" ;; - 9999*) - _kdedir="live" - _pv="-${PV}:live" ;; - *) - die "NEED_KDE=latest not supported for PV=${PV}" ;; - esac - _operator=">=" - else - case ${PV} in - 4.2 | 4.1.9* | 4.1.8* | 4.1.7* | 4.1.6* ) _kdedir="4.2" ;; - 4.1 | 4.0.9* | 4.0.8*) _kdedir="4.1" ;; - 4.0*) _kdedir="4.0" ;; - 3.9*) _kdedir="3.9" ;; - 9999*) _kdedir="live" ;; - *) die "NEED_KDE=latest not supported for PV=${PV}" ;; - esac - fi - ;; - - # NEED_KDE=":${SLOT}" - :live) - _kdedir="live" - _pv="-${NEED_KDE}" - export NEED_KDE="live" - ;; - :4.2) - _kdedir="4.2" - _pv="${NEED_KDE}" - ;; - :4.1) - _kdedir="4.1" - _pv="${NEED_KDE}" - ;; - :kde-4) - _kdedir="4.0" - _pv="${NEED_KDE}" - ;; - - # NEED_KDE="${PV}:${SLOT}" - *:live) - _kdedir="live" - _operator=">=" - _pv="-${NEED_KDE}" - export NEED_KDE="live" - ;; - *:4.2) - _kdedir="4.2" - _pv="-${NEED_KDE}" - ;; - *:4.1) - _kdedir="4.1" - _operator=">=" - _pv="-${NEED_KDE}" - ;; - *:kde-4) - _kdedir="4.0" - _operator=">=" - _pv="-${NEED_KDE}" - ;; - - # NEED_KDE="${PV}" - scm|svn|live|9999*) - _kdedir="live" - _operator=">=" - _pv="-${NEED_KDE}:live" - export NEED_KDE="live" - ;; - 4.2 | 4.1.9* | 4.1.8* | 4.1.7* | 4.1.6*) - _kdedir="4.2" - _operator=">=" - _pv="-${NEED_KDE}:4.2" - ;; - 4.1 | 4.0.9* | 4.0.8*) - _kdedir="4.1" - _operator=">=" - _pv="-${NEED_KDE}:4.1" - ;; - 4.0* | 4) - _kdedir="4.0" - _operator=">=" - _pv="-${NEED_KDE}:kde-4" - ;; - 3.9*) - _kdedir="3.9" - _operator=">=" - _pv="-${NEED_KDE}:kde-4" - ;; - - # The ebuild handles dependencies, KDEDIR, SLOT. - none) - : - ;; - - *) - die "NEED_KDE=${NEED_KDE} currently not supported." - ;; -esac - -if [[ ${NEED_KDE} != none ]]; then - - #Set the SLOT - if [[ -n ${KDEBASE} ]]; then - if [[ ${NEED_KDE} = live ]]; then - SLOT="live" - else - case ${KMNAME} in - koffice) - case ${PV} in - *) SLOT="2" ;; - esac - ;; - *) - case ${PV} in - 4.1* | 4.0.9* | 4.0.8*) SLOT="4.1" ;; - 4.2* | 4.1.9* | 4.1.8* | 4.1.7* | 4.1.6*) SLOT="4.2" ;; - 9999*) SLOT="live" ;; - *) SLOT="kde-4" ;; - esac - ;; - esac - fi - fi - - # Block install of other SLOTS unless kdeprefix - case "${EAPI}" in - 2 | 2_pre3 | 2_pre2 | 2_pre1) - for KDE_SLOT in ${KDE_SLOTS[@]}; do - # block non kdeprefix ${PN} on other slots - # we do this only if we do not depend on any version of kde - if [[ ${NEED_KDE} != "any" ]]; then - if [[ ${SLOT} != ${KDE_SLOT} ]]; then - DEPEND="${DEPEND} - !kdeprefix? ( !kde-base/${PN}:${KDE_SLOT}[-kdeprefix] )" - RDEPEND="${RDEPEND} - !kdeprefix? ( !kde-base/${PN}:${KDE_SLOT}[-kdeprefix] )" - fi - fi - done - ;; - esac - - # We only need to add the dependencies if ${PN} is not "kdelibs" or "kdepimlibs" - if [[ ${NEED_KDE} != "any" ]]; then - if [[ ${PN} != "kdelibs" ]]; then - case "${EAPI}" in - 2 | 2_pre3 | 2_pre2 | 2_pre1) - DEPEND="${DEPEND} ${_operator}kde-base/kdelibs${_pv}[kdeprefix=]" - RDEPEND="${RDEPEND} ${_operator}kde-base/kdelibs${_pv}[kdeprefix=]" - ;; - *) - DEPEND="${DEPEND} ${_operator}kde-base/kdelibs${_pv}" - RDEPEND="${RDEPEND} ${_operator}kde-base/kdelibs${_pv}" - ;; - esac - if [[ ${PN} != "kdepimlibs" ]]; then - case "${EAPI}" in - 2 | 2_pre3 | 2_pre2 | 2_pre1) - DEPEND="${DEPEND} ${_operator}kde-base/kdepimlibs${_pv}[kdeprefix=]" - RDEPEND="${RDEPEND} ${_operator}kde-base/kdepimlibs${_pv}[kdeprefix=]" - ;; - *) - DEPEND="${DEPEND} ${_operator}kde-base/kdepimlibs${_pv}" - RDEPEND="${RDEPEND} ${_operator}kde-base/kdepimlibs${_pv}" - esac - fi - fi - else - if [[ ${PN} != "kdelibs" ]]; then - # need_kde == any - DEPEND="${DEPEND} ${_operator}kde-base/kdelibs${_pv}" - RDEPEND="${RDEPEND} ${_operator}kde-base/kdelibs${_pv}" - if [[ ${PN} != "kdepimlibs" ]]; then - DEPEND="${DEPEND} ${_operator}kde-base/kdepimlibs${_pv}" - RDEPEND="${RDEPEND} ${_operator}kde-base/kdepimlibs${_pv}" - fi - fi - fi - - unset _operator _pv -fi - -# Fetch section - If the ebuild's category is not 'kde-base' and if it is not a -# koffice ebuild, the URI should be set in the ebuild itself -case ${SLOT} in - live) - ESVN_MIRROR="svn://anonsvn.kde.org/home/kde" - # Split ebuild, or extragear stuff - if [[ -n ${KMNAME} ]]; then - ESVN_PROJECT="KDE/${KMNAME}" - if [[ -z ${KMNOMODULE} && -z ${KMMODULE} ]]; then - KMMODULE="${PN}/" - fi - # Split kde-base/ ebuilds: (they reside in trunk/KDE) - case ${KMNAME} in - kdebase-*) - ESVN_REPO_URI="${ESVN_MIRROR}/trunk/KDE/kdebase" - ESVN_PROJECT="KDE/kdebase" - ;; - kdereview) - ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}" - ;; - kde*) - ESVN_REPO_URI="${ESVN_MIRROR}/trunk/KDE/${KMNAME}" - ;; - extragear*|playground*) - case ${PN} in - *-plasma) - ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}" - ESVN_PROJECT="KDE/${KMNAME}/${KMMODULE}" - ;; - *) - ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}" - ;; - esac - ;; - koffice) - ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}" - ;; - *) - # Extragear material - ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}" - ;; - esac - else - # kdelibs, kdepimlibs - ESVN_REPO_URI="${ESVN_MIRROR}/trunk/KDE/${PN}" - ESVN_PROJECT="KDE/${PN}" - fi - inherit subversion - ;; - *) - if [[ -n ${KDEBASE} ]]; then - if [[ -n ${KMNAME} ]]; then - _kmname=${KMNAME} - else - _kmname=${PN} - fi - _kmname_pv="${_kmname}-${PV}" - if [[ ${NEED_KDE} != "live" ]]; then - case ${KDEBASE} in - kde-base) - case ${PV} in - 4.1.9* | 4.1.8* | 4.1.7* | 4.1.6* | 4.0.9* | 4.0.8*) - SRC_URI="mirror://kde/unstable/${PV}/src/${_kmname_pv}.tar.bz2" ;; - *) SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.bz2";; - esac - ;; - koffice) - SRC_URI="mirror://kde/unstable/${_kmname_pv}/src/${_kmname_pv}.tar.bz2" - ;; - esac - fi - unset _kmname _kmname_pv - fi - ;; -esac - -debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: SRC_URI is ${SRC_URI}" - -# @ECLASS-VARIABLE: PREFIX -# @DESCRIPTION: -# Set the installation PREFIX. All kde-base ebuilds go into the KDE4 installation directory. -# Applications installed by the other ebuilds go into /usr/ by default, this value -# can be superseded by defining PREFIX before inheriting kde4-base. -# This value is set on pkg_setup -PREFIX="" - -debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: SLOT ${SLOT} - NEED_KDE ${NEED_KDE}" - -# @FUNCTION: kde4-base_pkg_setup -# @DESCRIPTION: -# Adds flags needed by all of KDE 4 to $QT4_BUILT_WITH_USE_CHECK. Uses -# kde4-functions_check_use from kde4-functions.eclass to print appropriate -# errors and die if any required flags listed in $QT4_BUILT_WITH_USE_CHECK or -# $KDE4_BUILT_WITH_USE_CHECK are missing. -kde4-base_pkg_setup() { - debug-print-function $FUNCNAME "$@" - - # Don't set KDEHOME during compile, it will cause access violations - unset KDEHOME - - if [[ ${NEED_KDE} != none ]]; then - - # Set PREFIX - case "${EAPI}" in - 2 | 2_pre3 | 2_pre2 | 2_pre1) - if [[ ${NEED_KDE} != "any" ]]; then - if use kdeprefix; then - KDEDIR="/usr/kde/${_kdedir}" - KDEDIRS="/usr:/usr/local:${KDEDIR}" - else - KDEDIR="/usr" - KDEDIRS="/usr:/usr/local" - fi - else - KDEDIR="/usr" - KDEDIRS="/usr:/usr/local" - fi - ;; - *) - KDEDIR="/usr" - KDEDIRS="/usr:/usr/local" - ;; - esac - fi - # Set the prefix based on KDEDIR - # Make it a consequence of kdeprefix - PREFIX=${KDEDIR} - - unset _kdedir - - case "${EAPI}" in - 2 | 2_pre3 | 2_pre2 | 2_pre1) - [[ -n ${QT4_BUILT_WITH_USE_CHECK} || -n ${KDE4_BUILT_WITH_USE_CHECK[@]} ]] && \ - die "built_with_use illegal in this EAPI!" - ;; - *) - # Make KDE4_BUILT_WITH_USE_CHECK an array if it isn't already - local line kde4_built_with_use_check=() - if [[ -n ${KDE4_BUILT_WITH_USE_CHECK[@]} && $(declare -p KDE4_BUILT_WITH_USE_CHECK) != 'declare -a '* ]]; then - while read line; do - [[ -z ${line} ]] && continue - kde4_built_with_use_check+=("${line}") - done <<< "${KDE4_BUILT_WITH_USE_CHECK}" - KDE4_BUILT_WITH_USE_CHECK=("${kde4_built_with_use_check[@]}") - fi - - # KDE4 applications require qt4 compiled with USE="accessibility dbus gif jpeg png qt3support ssl zlib". - if has_version ' /dev/null - fi - [ -e [Mm]akefile ] && kde4-base_src_make -} - -# @FUNCTION: kde4-base_src_configure -# @DESCRIPTION: -# Function for configuring the build of KDE4 applications. -kde4-base_src_configure() { - debug-print-function ${FUNCNAME} "$@" - - # Final flag handling - if has kdeenablefinal ${IUSE//+} && use kdeenablefinal; then - echo "Activating enable-final flag" - mycmakeargs="${mycmakeargs} -DKDE4_ENABLE_FINAL=ON" - fi - - # Enable generation of HTML handbook - if has htmlhandbook ${IUSE//+} && use htmlhandbook; then - echo "Enabling building of HTML handbook" - mycmakeargs="${mycmakeargs} -DKDE4_ENABLE_HTMLHANDBOOK=ON" - fi - - # Build tests in src_test only, where we override this value - mycmakeargs="${mycmakeargs} -DKDE4_BUILD_TESTS=OFF" - - # Set distribution name - [[ ${PN} == "kdelibs" ]] && mycmakeargs="${mycmakeargs} -DKDE_DISTRIBUTION_TEXT=Gentoo" - - # runpath linking - mycmakeargs="${mycmakeargs} -DKDE4_USE_ALWAYS_FULL_RPATH=ON" - - # Here we set the install prefix - mycmakeargs="${mycmakeargs} -DCMAKE_INSTALL_PREFIX=${PREFIX}" - - # If prefix is /usr, sysconf needs to be /etc, not /usr/etc - [[ "${PREFIX}" == "/usr" ]] && mycmakeargs="${mycmakeargs} -DSYSCONF_INSTALL_DIR=/etc" - - # Set environment - QTEST_COLORED=1 - QT_PLUGIN_PATH=${KDEDIR}/$(get_libdir)/kde4/plugins/ - - # hardcode path to *.cmake KDE files - PKG_CONFIG_PATH="${PKG_CONFIG_PATH:+${PKG_CONFIG_PATH}:}${KDEDIR}/$(get_libdir)/pkgconfig" - - # additonal arguments for KOFFICE - if [[ "${KMNAME}" == "koffice" ]]; then - case ${PN} in - koffice-data): - ;; - *): - mycmakeargs="${mycmakeargs} - -DWITH_OpenEXR=ON - $(cmake-utils_use_with crypt QCA2) - $(cmake-utils_use_with opengl OpenGL)" - if use crypt; then - mycmakeargs="${mycmakeargs} - -DQCA2_LIBRARIES=/usr/$(get_libdir)/qca2/libqca.so.2" - fi - ;; - esac - fi - - [ -e CMakeLists.txt ] && cmake-utils_src_configureout -} - -# @FUNCTION: kde4-base_src_make -# @DESCRIPTION: -# Function for building KDE4 applications. -# Options are passed to cmake-utils_src_make. -kde4-base_src_make() { - debug-print-function ${FUNCNAME} "$@" - - cmake-utils_src_make "$@" -} - -# @FUNCTION: kde4-base_src_test -# @DESCRIPTION: -# Function for testing KDE4 applications. -kde4-base_src_test() { - debug-print-function ${FUNCNAME} "$@" - - # Override this value, set in kde4-base_src_configure() - mycmakeargs="${mycmakeargs} -DKDE4_BUILD_TESTS=ON" - cmake-utils_src_compile - - cmake-utils_src_test -} - -# @FUNCTION: kde4-base_src_install -# @DESCRIPTION: -# Function for installing KDE4 applications. -kde4-base_src_install() { - debug-print-function ${FUNCNAME} "$@" - - kde4-base_src_make_doc - if [[ -d ${WORKDIR}/${PN}_build ]]; then - pushd "${WORKDIR}"/${PN}_build > /dev/null - fi - [ -e [Mm]akefile ] && cmake-utils_src_install -} - -# @FUNCTION: kde4-base_src_make_doc -# @DESCRIPTION: -# Function for installing the documentation of KDE4 applications. -kde4-base_src_make_doc() { - debug-print-function ${FUNCNAME} "$@" - - local doc - for doc in AUTHORS ChangeLog* README* NEWS TODO; do - [[ -s $doc ]] && dodoc ${doc} - done - - if [[ -z ${KMNAME} ]]; then - for doc in {apps,runtime,workspace,.}/*/{AUTHORS,README*}; do - if [[ -s $doc ]]; then - local doc_complete=${doc} - doc="${doc#*/}" - newdoc "$doc_complete" "${doc%/*}.${doc##*/}" - fi - done - fi - - if [[ -n ${KDEBASE} && -d "${D}"/usr/share/doc/${PF} ]]; then - # work around bug #97196 - dodir /usr/share/doc/kde && \ - mv "${D}"/usr/share/doc/${PF} "${D}"/usr/share/doc/kde/ || \ - die "Failed to move docs to kde/ failed." - fi -} - -# @FUNCTION: kde4-base_pkg_postinst -# @DESCRIPTION: -# Function to rebuild the KDE System Configuration Cache after an application has been installed. -kde4-base_pkg_postinst() { - buildsycoca -} - -# @FUNCTION: kde4-base_pkg_postrm -# @DESCRIPTION: -# Function to rebuild the KDE System Configuration Cache after an application has been removed. -kde4-base_pkg_postrm() { - buildsycoca -} diff --git a/eclass/kde4-functions.eclass b/eclass/kde4-functions.eclass deleted file mode 100644 index 0963dd0486c..00000000000 --- a/eclass/kde4-functions.eclass +++ /dev/null @@ -1,570 +0,0 @@ -# Copyright 1999-2008 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/eclass/kde4-functions.eclass,v 1.4 2008/03/13 17:57:51 ingmar Exp $ - -# @ECLASS: kde4-functions.eclass -# @MAINTAINER: -# kde@gentoo.org -# @BLURB: Common ebuild functions for monolithic and split KDE 4 packages -# @DESCRIPTION: -# This eclass contains all functions shared by the different eclasses, -# for KDE 4 monolithic and split ebuilds. -# -# NOTE: This eclass uses the SLOT dependencies from EAPI="1" or compatible, -# hence you must define EAPI="1" in the ebuild, before inheriting any eclasses. - -# @ECLASS-VARIABLE: KDEBASE -# @DESCRIPTION: -# This gets set to a non-zero value when a package is considered a kde or -# koffice ebuild. - -if [[ "${CATEGORY}" == "kde-base" ]]; then - debug-print "${ECLASS}: KDEBASE ebuild recognized" - KDEBASE="kde-base" -fi - -# is this a koffice ebuild? -if [[ "${KMNAME}" == "koffice" || "${PN}" == "koffice" ]]; then - debug-print "${ECLASS}: KOFFICE ebuild recognized" - KDEBASE="koffice" -fi - -# @ECLASS-VARIABLE: KDE_SLOTS -# @DESCRIPTION: -# The slots used by all KDE versions after 4.0 - this doesn't include kde-3.5 and the -# live-ebuilds that use the following var. -KDE_SLOTS=( "kde-4" "4.1" ) - -# @ECLASS-VARIABLE: KDE_LIVE_SLOTS -# @DESCRIPTION: -# The slots used by all KDE live versions. -KDE_LIVE_SLOTS=( "live" ) - -# @ECLASS-VARIABLE: KDE_DERIVATION_MAP -# @DESCRIPTION: -# Map of the monolithic->split ebuild derivation. -# Used to build dependencies describing the relationships between them: -# Monolithic ebuilds block their split counterparts in the same slot, and vice versa. -# -# Also see get-parent-package(), get-child-packages(), is-parent-package() -KDE_DERIVATION_MAP=' -app-office/koffice app-office/karbon -app-office/koffice app-office/kchart -app-office/koffice app-office/kexi -app-office/koffice app-office/kformula -app-office/koffice app-office/kivio -app-office/koffice app-office/koffice-data -app-office/koffice app-office/koffice-libs -app-office/koffice app-office/koshell -app-office/koffice app-office/kplato -app-office/koffice app-office/kpresenter -app-office/koffice app-office/krita -app-office/koffice app-office/kspread -app-office/koffice app-office/kugar -app-office/koffice app-office/kword -kde-base/kdeaccessibility kde-base/kdeaccessibility-colorschemes -kde-base/kdeaccessibility kde-base/kdeaccessibility-iconthemes -kde-base/kdeaccessibility kde-base/kmag -kde-base/kdeaccessibility kde-base/kmousetool -kde-base/kdeaccessibility kde-base/kmouth -kde-base/kdeaccessibility kde-base/kttsd -kde-base/kdeadmin kde-base/kcron -kde-base/kdeadmin kde-base/kdat -kde-base/kdeadmin kde-base/knetworkconf -kde-base/kdeadmin kde-base/kpackage -kde-base/kdeadmin kde-base/ksystemlog -kde-base/kdeadmin kde-base/ksysv -kde-base/kdeadmin kde-base/kuser -kde-base/kdeadmin kde-base/lilo-config -kde-base/kdeadmin kde-base/secpolicy -kde-base/kdeartwork kde-base/kdeartwork-colorschemes -kde-base/kdeartwork kde-base/kdeartwork-emoticons -kde-base/kdeartwork kde-base/kdeartwork-icewm-themes -kde-base/kdeartwork kde-base/kdeartwork-iconthemes -kde-base/kdeartwork kde-base/kdeartwork-kscreensaver -kde-base/kdeartwork kde-base/kdeartwork-kworldclock -kde-base/kdeartwork kde-base/kdeartwork-sounds -kde-base/kdeartwork kde-base/kdeartwork-styles -kde-base/kdeartwork kde-base/kdeartwork-wallpapers -kde-base/kdebase kde-base/dolphin -kde-base/kdebase kde-base/drkonqi -kde-base/kdebase kde-base/kappfinder -kde-base/kdebase kde-base/kcheckpass -kde-base/kdebase kde-base/kcminit -kde-base/kdebase kde-base/kcmshell -kde-base/kdebase kde-base/kcontrol -kde-base/kdebase kde-base/kde-menu -kde-base/kdebase kde-base/kde-menu-icons -kde-base/kdebase kde-base/kde-wallpapers -kde-base/kdebase kde-base/kdebase-cursors -kde-base/kdebase kde-base/kdebase-data -kde-base/kdebase kde-base/kdebase-kioslaves -kde-base/kdebase kde-base/kdebase-startkde -kde-base/kdebase kde-base/kdebugdialog -kde-base/kdebase kde-base/kdepasswd -kde-base/kdebase kde-base/kdesu -kde-base/kdebase kde-base/kdialog -kde-base/kdebase kde-base/kdm -kde-base/kdebase kde-base/keditbookmarks -kde-base/kdebase kde-base/kfile -kde-base/kdebase kde-base/kfind -kde-base/kdebase kde-base/khelpcenter -kde-base/kdebase kde-base/khotkeys -kde-base/kdebase kde-base/kiconfinder -kde-base/kdebase kde-base/kinfocenter -kde-base/kdebase kde-base/kioclient -kde-base/kdebase kde-base/klipper -kde-base/kdebase kde-base/kmenuedit -kde-base/kdebase kde-base/kmimetypefinder -kde-base/kdebase kde-base/knetattach -kde-base/kdebase kde-base/knewstuff -kde-base/kdebase kde-base/knotify -kde-base/kdebase kde-base/konqueror -kde-base/kdebase kde-base/konsole -kde-base/kdebase kde-base/kpasswdserver -kde-base/kdebase kde-base/kquitapp -kde-base/kdebase kde-base/kreadconfig -kde-base/kdebase kde-base/krunner -kde-base/kdebase kde-base/kscreensaver -kde-base/kdebase kde-base/ksmserver -kde-base/kdebase kde-base/ksplash -kde-base/kdebase kde-base/kstart -kde-base/kdebase kde-base/kstartupconfig -kde-base/kdebase kde-base/kstyles -kde-base/kdebase kde-base/ksysguard -kde-base/kdebase kde-base/ksystraycmd -kde-base/kdebase kde-base/ktimezoned -kde-base/kdebase kde-base/ktip -kde-base/kdebase kde-base/ktraderclient -kde-base/kdebase kde-base/kuiserver -kde-base/kdebase kde-base/kurifilter-plugins -kde-base/kdebase kde-base/kwin -kde-base/kdebase kde-base/kwrite -kde-base/kdebase kde-base/libkonq -kde-base/kdebase kde-base/libkworkspace -kde-base/kdebase kde-base/libplasma -kde-base/kdebase kde-base/libtaskmanager -kde-base/kdebase kde-base/nepomuk -kde-base/kdebase kde-base/nsplugins -kde-base/kdebase kde-base/phonon -kde-base/kdebase kde-base/phonon-xine -kde-base/kdebase kde-base/plasma -kde-base/kdebase kde-base/plasma-apps -kde-base/kdebase kde-base/plasma-workspace -kde-base/kdebase kde-base/renamedlg-plugins -kde-base/kdebase kde-base/solid -kde-base/kdebase kde-base/solid-hardware -kde-base/kdebase kde-base/soliduiserver -kde-base/kdebase kde-base/systemsettings -kde-base/kdebindings kde-base/kalyptus -kde-base/kdebindings kde-base/kdejava -kde-base/kdebindings kde-base/kimono -kde-base/kdebindings kde-base/kjsembed -kde-base/kdebindings kde-base/korundum -kde-base/kdebindings kde-base/krossjava -kde-base/kdebindings kde-base/krosspython -kde-base/kdebindings kde-base/krossruby -kde-base/kdebindings kde-base/pykde4 -kde-base/kdebindings kde-base/qtjava -kde-base/kdebindings kde-base/qtruby -kde-base/kdebindings kde-base/qtsharp -kde-base/kdebindings kde-base/qyoto -kde-base/kdebindings kde-base/smoke -kde-base/kdebindings kde-base/xparts -kde-base/kdeedu kde-base/blinken -kde-base/kdeedu kde-base/kalgebra -kde-base/kdeedu kde-base/kalzium -kde-base/kdeedu kde-base/kanagram -kde-base/kdeedu kde-base/kbruch -kde-base/kdeedu kde-base/kgeography -kde-base/kdeedu kde-base/khangman -kde-base/kdeedu kde-base/kig -kde-base/kdeedu kde-base/kiten -kde-base/kdeedu kde-base/klettres -kde-base/kdeedu kde-base/kmplot -kde-base/kdeedu kde-base/kpercentage -kde-base/kdeedu kde-base/kstars -kde-base/kdeedu kde-base/ktouch -kde-base/kdeedu kde-base/kturtle -kde-base/kdeedu kde-base/kwordquiz -kde-base/kdeedu kde-base/libkdeedu -kde-base/kdeedu kde-base/marble -kde-base/kdeedu kde-base/parley -kde-base/kdeedu kde-base/step -kde-base/kdegames kde-base/bovo -kde-base/kdegames kde-base/katomic -kde-base/kdegames kde-base/kbattleship -kde-base/kdegames kde-base/kblackbox -kde-base/kdegames kde-base/kblocks -kde-base/kdegames kde-base/kbounce -kde-base/kdegames kde-base/kbreakout -kde-base/kdegames kde-base/kdiamond -kde-base/kdegames kde-base/kfourinline -kde-base/kdegames kde-base/kgoldrunner -kde-base/kdegames kde-base/kiriki -kde-base/kdegames kde-base/kjumpingcube -kde-base/kdegames kde-base/klines -kde-base/kdegames kde-base/kmahjongg -kde-base/kdegames kde-base/kmines -kde-base/kdegames kde-base/knetwalk -kde-base/kdegames kde-base/kolf -kde-base/kdegames kde-base/kollision -kde-base/kdegames kde-base/konquest -kde-base/kdegames kde-base/kpat -kde-base/kdegames kde-base/kreversi -kde-base/kdegames kde-base/ksame -kde-base/kdegames kde-base/kshisen -kde-base/kdegames kde-base/ksirk -kde-base/kdegames kde-base/kspaceduel -kde-base/kdegames kde-base/ksquares -kde-base/kdegames kde-base/ksudoku -kde-base/kdegames kde-base/ktuberling -kde-base/kdegames kde-base/kubrick -kde-base/kdegames kde-base/libkdegames -kde-base/kdegames kde-base/libkmahjongg -kde-base/kdegames kde-base/lskat -kde-base/kdegraphics kde-base/gwenview -kde-base/kdegraphics kde-base/kamera -kde-base/kdegraphics kde-base/kcolorchooser -kde-base/kdegraphics kde-base/kdegraphics-strigi-analyzer -kde-base/kdegraphics kde-base/kgamma -kde-base/kdegraphics kde-base/kghostview -kde-base/kdegraphics kde-base/kolourpaint -kde-base/kdegraphics kde-base/kruler -kde-base/kdegraphics kde-base/ksaneplugin -kde-base/kdegraphics kde-base/ksnapshot -kde-base/kdegraphics kde-base/libkdcraw -kde-base/kdegraphics kde-base/libkexiv2 -kde-base/kdegraphics kde-base/libkipi -kde-base/kdegraphics kde-base/libksane -kde-base/kdegraphics kde-base/libkscan -kde-base/kdegraphics kde-base/okular -kde-base/kdegraphics kde-base/svgpart -kde-base/kdemultimedia kde-base/dragonplayer -kde-base/kdemultimedia kde-base/juk -kde-base/kdemultimedia kde-base/kdemultimedia-kioslaves -kde-base/kdemultimedia kde-base/kdemultimedia-strigi-analyzer -kde-base/kdemultimedia kde-base/kmix -kde-base/kdemultimedia kde-base/kscd -kde-base/kdemultimedia kde-base/libkcddb -kde-base/kdemultimedia kde-base/libkcompactdisc -kde-base/kdenetwork kde-base/kdenetwork-filesharing -kde-base/kdenetwork kde-base/kdnssd -kde-base/kdenetwork kde-base/kget -kde-base/kdenetwork kde-base/knewsticker -kde-base/kdenetwork kde-base/kopete -kde-base/kdenetwork kde-base/kppp -kde-base/kdenetwork kde-base/krdc -kde-base/kdenetwork kde-base/krfb -kde-base/kdepim kde-base/akonadi -kde-base/kdepim kde-base/akregator -kde-base/kdepim kde-base/certmanager -kde-base/kdepim kde-base/kabc2mutt -kde-base/kdepim kde-base/kabcclient -kde-base/kdepim kde-base/kaddressbook -kde-base/kdepim kde-base/kalarm -kde-base/kdepim kde-base/kdemaildir -kde-base/kdepim kde-base/kdepim-icons -kde-base/kdepim kde-base/kdepim-kioslaves -kde-base/kdepim kde-base/kdepim-kresources -kde-base/kdepim kde-base/kdepim-strigi-analyzer -kde-base/kdepim kde-base/kdepim-wizards -kde-base/kdepim kde-base/kfeed -kde-base/kdepim kde-base/kitchensync -kde-base/kdepim kde-base/kjots -kde-base/kdepim kde-base/kleopatra -kde-base/kdepim kde-base/kmail -kde-base/kdepim kde-base/kmailcvt -kde-base/kdepim kde-base/kmobiletools -kde-base/kdepim kde-base/knode -kde-base/kdepim kde-base/knotes -kde-base/kdepim kde-base/kode -kde-base/kdepim kde-base/konsolekalendar -kde-base/kdepim kde-base/kontact -kde-base/kdepim kde-base/kontact-specialdates -kde-base/kdepim kde-base/kontactinterfaces -kde-base/kdepim kde-base/korganizer -kde-base/kdepim kde-base/korn -kde-base/kdepim kde-base/kpilot -kde-base/kdepim kde-base/ktimetracker -kde-base/kdepim kde-base/ktnef -kde-base/kdepim kde-base/libkdepim -kde-base/kdepim kde-base/libkholidays -kde-base/kdepim kde-base/libkleo -kde-base/kdepim kde-base/libkpgp -kde-base/kdepim kde-base/libksieve -kde-base/kdepim kde-base/mailtransport -kde-base/kdepim kde-base/mimelib -kde-base/kdepim kde-base/networkstatus -kde-base/kdesdk kde-base/cervisia -kde-base/kdesdk kde-base/kapptemplate -kde-base/kdesdk kde-base/kate -kde-base/kdesdk kde-base/kbabel -kde-base/kdesdk kde-base/kbugbuster -kde-base/kdesdk kde-base/kcachegrind -kde-base/kdesdk kde-base/kdeaccounts-plugin -kde-base/kdesdk kde-base/kdesdk-kioslaves -kde-base/kdesdk kde-base/kdesdk-misc -kde-base/kdesdk kde-base/kdesdk-scripts -kde-base/kdesdk kde-base/kdesdk-strigi-analyzer -kde-base/kdesdk kde-base/kmtrace -kde-base/kdesdk kde-base/kompare -kde-base/kdesdk kde-base/kspy -kde-base/kdesdk kde-base/kstartperf -kde-base/kdesdk kde-base/kuiviewer -kde-base/kdesdk kde-base/lokalize -kde-base/kdesdk kde-base/poxml -kde-base/kdesdk kde-base/strigi-analyzer -kde-base/kdesdk kde-base/umbrello -kde-base/kdetoys kde-base/amor -kde-base/kdetoys kde-base/kteatime -kde-base/kdetoys kde-base/ktux -kde-base/kdetoys kde-base/kweather -kde-base/kdetoys kde-base/kworldclock -kde-base/kdeutils kde-base/ark -kde-base/kdeutils kde-base/kcalc -kde-base/kdeutils kde-base/kcharselect -kde-base/kdeutils kde-base/kdessh -kde-base/kdeutils kde-base/kdf -kde-base/kdeutils kde-base/kfloppy -kde-base/kdeutils kde-base/kgpg -kde-base/kdeutils kde-base/kmilo -kde-base/kdeutils kde-base/kregexpeditor -kde-base/kdeutils kde-base/ktimer -kde-base/kdeutils kde-base/kwallet -kde-base/kdeutils kde-base/okteta -kde-base/kdeutils kde-base/superkaramba -kde-base/kdeutils kde-base/sweeper -kde-base/kdewebdev kde-base/kfilereplace -kde-base/kdewebdev kde-base/kimagemapeditor -kde-base/kdewebdev kde-base/klinkstatus -kde-base/kdewebdev kde-base/kommander -kde-base/kdewebdev kde-base/kxsldbg -kde-base/kdewebdev kde-base/quanta -' - -# @FUNCTION: get-parent-package -# @USAGE: -# @DESCRIPTION: -# Echoes the name of the monolithic package that a given split ebuild was derived from. -get-parent-package() { - local parent child - while read parent child; do - if [[ "${child}" == "$1" ]]; then - echo ${parent} - return 0 - fi - done <<< "$KDE_DERIVATION_MAP" - die "Package $target not found in KDE_DERIVATION_MAP, please report bug" -} - -# @FUNCTION: get-child-packages -# @USAGE: -# @DESCRIPTION: -# Echoes the names of all (split) ebuilds derived from a given monolithic ebuild. -get-child-packages() { - local parent child - while read parent child; do - [[ "${parent}" == "$1" ]] && echo -n "${child} " - done <<< "$KDE_DERIVATION_MAP" -} - -# @FUNCTION: is-parent-package -# @USAGE: <$CATEGORY/$PN> -# @DESCRIPTION: -# Returns zero exit-status if the given package is a parent (monolithic) ebuild. -# Returns non-zero exit-status if it's not. -is-parent-package() { - local parent child - while read parent child; do - [[ "${parent}" == "$1" ]] && return 0 - done <<< "$KDE_DERIVATION_MAP" - return 1 -} - -# @FUNCTION: buildsycoca -# @DESCRIPTION: -# Function to rebuild the KDE System Configuration Cache. -# All KDE ebuilds should run this in pkg_postinst and pkg_postrm. -# -# Note that kde4-base.eclass already does this. -buildsycoca() { - debug-print-function ${FUNCNAME} "$@" - - if [[ -x ${KDEDIR}/bin/kbuildsycoca4 && -z "${ROOT%%/}" ]]; then - # Make sure tha cache file exists, or kbuildsycoca4 will fail - touch "${KDEDIR}/share/kde4/services/ksycoca4" - - # We have to unset DISPLAY and DBUS_SESSION_BUS_ADDRESS, the ones - # in the user's environment (through su [without '-']) may cause - # kbuildsycoca4 to hang. - - ebegin "Running kbuildsycoca4 to build global database" - # This is needed because we support multiple kde versions installed together. - XDG_DATA_DIRS="/usr/share:${KDEDIRS//:/\/share:}/share:/usr/local/share" \ - DISPLAY="" DBUS_SESSION_BUS_ADDRESS="" \ - ${KDEDIR}/bin/kbuildsycoca4 --global --noincremental &> /dev/null - eend $? - fi -} - -# @FUNCTION: comment_all_add_subdirectory -# @USAGE: [list of directory names] -# @DESCRIPTION: -# recursively comment all add_subdirectory instructions in listed directories -# except the ones in cmake/. -comment_all_add_subdirectory() { - find "$@" -name CMakeLists.txt -print0 | grep -vFzZ "./cmake" | \ - xargs -0 sed -i -e '/add_subdirectory/s/^/#DONOTCOMPILE /' -e '/ADD_SUBDIRECTORY/s/^/#DONOTCOMPILE /' || \ - die "${LINENO}: Initial sed died" -} - -# @ECLASS-VARIABLE: KDE_LINGUAS -# @DESCRIPTION: -# This is a whitespace-separated list of translations that this ebuild supports. -# These translations automatically get added to IUSE. Therefore ebuilds must set -# this variable before inheriting any eclasses. To only enable selected -# translations ebuilds must call enable_selected_linguas(). kde4-base.eclass does -# this for you. -# -# Example: KDE_LINGUAS="en_GB de nl" -for _lingua in ${KDE_LINGUAS}; do - IUSE="${IUSE} linguas_${_lingua}" -done - -# @FUNCTION: enable_selected_linguas -# @DESCRIPTION: -# Enable translations based on LINGUAS settings and what translations are -# supported (see KDE_LINGUAS). By default translations are found in "${S}"/po -# but this default can be overridden by defining KDE_LINGUAS_DIR. -enable_selected_linguas() { - local lingua - - for lingua in ${KDE_LINGUAS}; do - if [ -e "${S}"/po/"${lingua}".po ]; then - mv "${S}"/po/"${lingua}".po "${S}"/po/"${lingua}".po.old - fi - done - comment_all_add_subdirectory "${KDE_LINGUAS_DIR:-${S}/po}" - for lingua in ${LINGUAS}; do - if [ -d "${S}"/po/"${lingua}" ]; then - sed -e "/add_subdirectory([[:space:]]*${lingua}[[:space:]]*)[[:space:]]*$/ s/^#DONOTCOMPILE //" \ - -e "/ADD_SUBDIRECTORY([[:space:]]*${lingua}[[:space:]]*)[[:space:]]*$/ s/^#DONOTCOMPILE //" \ - -i "${KDE_LINGUAS_DIR:-${S}/po}"/CMakeLists.txt || die "Sed to uncomment linguas_${lingua} failed." - fi - if [ -e "${S}"/po/"${lingua}".po.old ]; then - mv "${S}"/po/"${lingua}".po.old "${S}"/po/"${lingua}".po - fi - done -} - -# @ECLASS-VARIABLE: QT4_BUILT_WITH_USE_CHECK -# @DESCRIPTION: -# A list of USE flags that x11-libs/qt:4 needs to be built with. -# -# This list is automatically appended to KDE4_BUILT_WITH_USE_CHECK, -# so don't call qt4_pkg_setup manually. - -# @ECLASS-VARIABLE: KDE4_BUILT_WITH_USE_CHECK -# @DESCRIPTION: -# The contents of $KDE4_BUILT_WITH_USE_CHECK gets fed to built_with_use -# (eutils.eclass), line per line. -# -# Example: -# @CODE -# pkg_setup() { -# KDE4_BUILT_WITH_USE_CHECK="--missing true sys-apps/dbus X" -# use alsa && KDE4_BUILT_WITH_USE_CHECK="${KDE4_BUILT_WITH_USE_CHECK} -# --missing true media-libs/alsa-lib midi" -# kde4-base_pkg_setup -# } -# @CODE - -# run built_with_use on each flag and print appropriate error messages if any -# flags are missing -_kde4-functions_built_with_use() { - local missing opt pkg flag flags - - if [[ ${1} = "--missing" ]]; then - missing="${1} ${2}" && shift 2 - fi - if [[ ${1:0:1} = "-" ]]; then - opt=${1} && shift - fi - - pkg=${1} && shift - - for flag in "${@}"; do - flags="${flags} ${flag}" - if ! built_with_use ${missing} ${opt} ${pkg} ${flag}; then - flags="${flags}*" - else - [[ ${opt} = "-o" ]] && return 0 - fi - done - if [[ "${flags# }" = "${@}" ]]; then - return 0 - fi - if [[ ${opt} = "-o" ]]; then - eerror "This package requires '${pkg}' to be built with any of the following USE flags: '$*'." - else - eerror "This package requires '${pkg}' to be built with the following USE flags: '${flags# }'." - fi - return 1 -} - -# @FUNCTION: kde4-functions_check_use -# @DESCRIPTION: -# Check if the Qt4 libraries are built with the USE flags listed in -# $QT4_BUILT_WITH_USE_CHECK. -# -# Check if a list of packages are built with certain USE flags, as listed in -# $KDE4_BUILT_WITH_USE_CHECK. -# -# If any of the required USE flags are missing, an eerror will be printed for -# each package with missing USE flags. -kde4-functions_check_use() { - # I like to keep flags sorted - QT4_BUILT_WITH_USE_CHECK=$(echo "${QT4_BUILT_WITH_USE_CHECK}" | \ - tr '[:space:]' '\n' | sort | uniq | xargs) - - local line missing - if [[ -n ${KDE4_BUILT_WITH_USE_CHECK[@]} && $(declare -p KDE4_BUILT_WITH_USE_CHECK) = 'declare -a '* ]]; then - KDE4_BUILT_WITH_USE_CHECK=("x11-libs/qt:4 ${QT4_BUILT_WITH_USE_CHECK}" - "${KDE4_BUILT_WITH_USE_CHECK[@]}") - - for line in "${KDE4_BUILT_WITH_USE_CHECK[@]}"; do - [[ -z ${line} ]] && continue - if ! _kde4-functions_built_with_use ${line}; then - missing=true - fi - done - else - KDE4_BUILT_WITH_USE_CHECK="x11-libs/qt:4 ${QT4_BUILT_WITH_USE_CHECK} - ${KDE4_BUILT_WITH_USE_CHECK}" - - while read line; do - [[ -z ${line} ]] && continue - if ! _kde4-functions_built_with_use ${line}; then - missing=true - fi - done <<< "${KDE4_BUILT_WITH_USE_CHECK}" - fi - if [[ -n ${missing} ]]; then - echo - eerror "Flags marked with an * are missing." - die "Missing USE flags found" - fi -} -# @FUNCTION: kdebase_toplevel_cmakelists -# @DESCRIPTION: -# replace includes for live ebuilds with optional requests -kdebase_toplevel_cmakelist() { - insert=$(sed -e '/macro_optional_find_package/!d' < - "${ESVN_WC_PATH}"/CMakeLists.txt) - at=$(sed -n '/^include[[:space:]]*(/=' < "${S}"/CMakeLists.txt | sed -n '$p') - for line in ${insert}; do - sed "${at}a${line}" -i "${S}"/CMakeLists.txt - done -} - diff --git a/eclass/kde4-meta.eclass b/eclass/kde4-meta.eclass deleted file mode 100644 index 2114e0ed744..00000000000 --- a/eclass/kde4-meta.eclass +++ /dev/null @@ -1,746 +0,0 @@ -# Copyright 1999-2008 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/eclass/kde4-meta.eclass,v 1.5 2008/03/13 17:57:51 ingmar Exp $ -# -# @ECLASS: kde4-meta.eclass -# @MAINTAINER: -# kde@gentoo.org -# @BLURB: Eclass for writing "split" KDE packages. -# @DESCRIPTION: -# This eclass provides all necessary functions for writing split KDE ebuilds. -# -# You must define KMNAME to use this eclass, and do so before inheriting it. All other variables are optional. -# Do not include the same item in more than one of KMMODULE, KMMEXTRA, KMCOMPILEONLY, KMEXTRACTONLY. -# -# NOTE: This eclass uses the SLOT dependencies from EAPI="1" or compatible, -# hence you must define EAPI="1" in the ebuild, before inheriting any eclasses. - -# we want opengl optional in each koffice package -if [[ "${KMNAME}" == "koffice" ]]; then - case ${PN} in - koffice-data) - ;; - *) - OPENGL_REQUIRED="optional" - ;; - esac -fi -inherit multilib kde4-functions kde4-base - -case "${EAPI}" in - 2) - EXPORT_FUNCTIONS pkg_setup src_unpack src_configure src_compile src_test src_install pkg_postinst pkg_postrm - ;; - *) - EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_test src_install pkg_postinst pkg_postrm - ;; -esac - -if [[ -z ${KMNAME} ]]; then - die "kde4-meta.eclass inherited but KMNAME not defined - broken ebuild" -fi - -case ${KDEBASE} in - kde-base) HOMEPAGE="http://www.kde.org/" - LICENSE="GPL-2" ;; - koffice) HOMEPAGE="http://www.koffice.org/" - LICENSE="GPL-2" ;; -esac - -debug-print "${BASH_SOURCE} ${LINENO} ${ECLASS}: DEPEND ${DEPEND} - before blockers" -debug-print "${BASH_SOURCE} ${LINENO} ${ECLASS}: RDEPEND ${RDEPEND} - before blockers" - -# Add a blocker on the package we're derived from -if [[ -n ${KDEBASE} ]]; then - DEPEND="${DEPEND} !$(get-parent-package ${CATEGORY}/${PN}):${SLOT}" - RDEPEND="${RDEPEND} !$(get-parent-package ${CATEGORY}/${PN}):${SLOT}" -fi - -debug-print "line ${LINENO} ${ECLASS}: DEPEND ${DEPEND} - after blockers" -debug-print "line ${LINENO} ${ECLASS}: RDEPEND ${RDEPEND} - after blockers" - -# Add dependencies that all packages in a certain module share. -case ${KMNAME} in - kdebase|kdebase-workspace|kdebase-runtime) - DEPEND="${DEPEND} >=kde-base/qimageblitz-0.0.4" - RDEPEND="${RDEPEND} >=kde-base/qimageblitz-0.0.4" - ;; - kdepim) - DEPEND="${DEPEND} dev-libs/boost app-office/akonadi-server" - RDEPEND="${RDEPEND} dev-libs/boost" - if [[ ${PN} != kode ]]; then - DEPEND="${DEPEND} >=kde-base/kode-${PV}:${SLOT}" - RDEPEND="${RDEPEND} >=kde-base/kode-${PV}:${SLOT}" - fi - case ${PN} in - akregator|kaddressbook|kjots|kmail|kmobiletools|knode|knotes|korganizer|ktimetracker) - IUSE="+kontact" - DEPEND="${DEPEND} kontact? ( >=kde-base/kontactinterfaces-${PV}:${SLOT} )" - RDEPEND="${RDEPEND} kontact? ( >=kde-base/kontactinterfaces-${PV}:${SLOT} )" - ;; - esac - ;; - kdegames) - if [[ ${PN} != "libkdegames" ]]; then - DEPEND="${DEPEND} >=kde-base/libkdegames-${PV}:${SLOT}" - RDEPEND="${RDEPEND} >=kde-base/libkdegames-${PV}:${SLOT}" - fi - ;; - koffice) - DEPEND="${DEPEND} - !app-office/${PN}:0 - !app-office/koffice:0 - !app-office/koffice-meta:0" - case ${PN} in - koffice-libs): - IUSE="+crypt" - DEPEND="${DEPEND} crypt? ( >=app-crypt/qca-2 )" - RDEPEND="${RDEPEND} crypt? ( >=app-crypt/qca-2 )" - ;; - koffice-data): - ;; - *) - IUSE="+crypt" - DEPEND="${DEPEND} - >=app-office/koffice-libs-${PV}:${SLOT} - crypt? ( >=app-crypt/qca-2 )" - RDEPEND="${RDEPEND} - >=app-office/koffice-libs-${PV}:${SLOT} - crypt? ( >=app-crypt/qca-2 )" - ;; - esac - ;; -esac - -debug-print "line ${LINENO} ${ECLASS}: DEPEND ${DEPEND} - after metapackage-specific dependencies" -debug-print "line ${LINENO} ${ECLASS}: RDEPEND ${RDEPEND} - after metapackage-specific dependencies" - -# @ECLASS-VARIABLE: KMNAME -# @DESCRIPTION: -# Name of the parent-module (e.g. kdebase, kdepim, ...). You _must_ set it _before_ inheriting this eclass, -# (unlike the other parameters), since it's used to set $SRC_URI. - -# @ECLASS-VARIABLE: KMMODULE -# @DESCRIPTION: -# Specify exactly one subdirectory of $KMNAME here. Defaults to $PN. -# The subdirectory listed here is treated exactly like items in $KMEXTRA. -# -# Example: The ebuild name of "kdebase/l10n" is kde-base/kdebase-l10n, because -# just 'l10n' would be too confusing. Hence it sets KMMODULE="l10n". - -# @ECLASS-VARIABLE: KMNOMODULE -# @DESCRIPTION: -# If set to "true", $KMMODULE doesn't have to be defined. -# -# Example usage: If you're installing subdirectories of a package, like plugins, -# you mark the topsubdirectory (containing the package) as $KMEXTRACTONLY, and set KMNOMODULE="true". -if [[ ${KMNOMODULE} != "true" && -z ${KMMODULE} ]]; then - KMMODULE=${PN} -fi - -# @ECLASS-VARIABLE: KMEXTRA -# @DESCRIPTION: -# All subdirectories listed here will be extracted, compiled & installed. -# $KMMODULE is always added to $KMEXTRA. -# If the htmlhandbook USE-flag is set, and if this directory exists, -# then "doc/$KMMODULE" is added to $KMEXTRA. In other cases, this should be -# handled in the ebuild. -# If the documentation is in a different subdirectory, you should add it to KMEXTRA. - -# @ECLASS-VARIABLE: KMCOMPILEONLY -# @DESCRIPTION: -# All subdirectories listed here will be extracted & compiled, but not installed. - -# @ECLASS-VARIABLE: KMEXTRACTONLY -# @DESCRIPTION: -# All subdirectories listed here will be extracted, but not compiled nor installed. -# This can be used to avoid compilation in a subdirectory of a directory in $KMMODULE or $KMEXTRA - -# @ECLASS-VARIABLE: KMTARPARAMS -# @DESCRIPTION: -# Specify extra parameters to pass to tar, in kde4-meta_src_extract. -# '-xpf -j' are passed to tar by default. - -# @FUNCTION: kde4-meta_pkg_setup -# @DESCRIPTION: -# Currently just calls its equivalent in kde4-base.eclass(5). Use this in split -# ebuilds. -kde4-meta_pkg_setup() { - kde4-base_pkg_setup -} - -# @FUNCTION: kde4-meta_src_unpack -# @DESCRIPTION: -# This function unpacks the source for split ebuilds. See also -# kde4-meta-src_extract. -kde4-meta_src_unpack() { - debug-print-function ${FUNCNAME} "$@" - case ${SLOT} in - live) - S="${WORKDIR}/${PN}" - mkdir -p "${S}" - ESVN_RESTRICT="export" subversion_src_unpack - subversion_wc_info - kde4-meta_src_extract - kde4-base_apply_patches - subversion_bootstrap - kde4-meta_change_cmakelists - ;; - *) - kde4-meta_src_extract - kde4-meta_change_cmakelists - ;; - esac -} - -# @FUNCTION: kde4-meta_src_extract -# @DESCRIPTION: -# A function to unpack the source for a split KDE ebuild. -# Also see KMMODULE, KMNOMODULE, KMEXTRA, KMCOMPILEONLY, KMEXTRACTONLY and KMTARPARAMS. -kde4-meta_src_extract() { - case ${SLOT} in - live) - local rsync_options subdir kmnamedir targetdir - # Export working copy to ${S} - einfo "Exporting parts of working copy to ${S}" - kde4-meta_create_extractlists - - case ${KMNAME} in - kdebase) kmnamedir="" ;; - kdebase-*) kmnamedir="${KMNAME#kdebase-}/" ;; - esac - - rsync_options="--group --links --owner --perms --quiet --exclude=.svn/" - - # Copy ${KMNAME} non-recursively (toplevel files) - rsync ${rsync_options} "${ESVN_WC_PATH}"/${kmnamedir}* "${S}" \ - || die "${ESVN}: can't export toplevel files to '${S}'." - # Copy cmake directory - if [[ -d "${ESVN_WC_PATH}/${kmnamedir}cmake" ]]; then - rsync --recursive ${rsync_options} "${ESVN_WC_PATH}/${kmnamedir}cmake" "${S}" \ - || die "${ESVN}: can't export cmake files to '${S}'." - fi - # Copy all subdirectories - for subdir in $(__list_needed_subdirectories); do - targetdir="" - if [[ ${subdir} == doc/* && ! -e "${ESVN_WC_PATH}/${kmnamedir}${subdir}" ]]; then - continue - fi - - [[ ${subdir%/} == */* ]] && targetdir=${subdir%/} && targetdir=${targetdir%/*} && mkdir -p "${S}/${targetdir}" - rsync --recursive ${rsync_options} "${ESVN_WC_PATH}/${kmnamedir}${subdir%/}" "${S}/${targetdir}" \ - || die "${ESVN}: can't export subdirectory '${subdir}' to '${S}/${targetdir}'." - done - [[ "${KMNAME}" == kdebase* ]] && kdebase_toplevel_cmakelist - - if [[ ${KMNAME} == kdebase-runtime && ${PN} != kdebase-data ]]; then - sed -i -e '/^install(PROGRAMS[[:space:]]*[^[:space:]]*\/kde4[[:space:]]/s/^/#DONOTINSTALL /' \ - "${S}"/CMakeLists.txt || die "Sed to exclude bin/kde4 failed" - fi - ;; - *) - local abort tarball tarfile f extractlist - tarball="${KMNAME}-${PV}.tar.bz2" - tarfile="${DISTDIR}"/${tarball} - - echo "Unpacking parts of ${tarball} to ${WORKDIR}" - - kde4-meta_create_extractlists - - for f in cmake/ CMakeLists.txt ConfigureChecks.cmake config.h.cmake \ - AUTHORS COPYING INSTALL README NEWS ChangeLog - do - extractlist="${extractlist} ${KMNAME}-${PV}/${f}" - done - extractlist="${extractlist} $(__list_needed_subdirectories)" - KMTARPARAMS="${KMTARPARAMS} -j" - - pushd "${WORKDIR}" > /dev/null - [[ -n ${KDE4_STRICTER} ]] && echo tar -xpf $tarfile $KMTARPARAMS $extractlist >&2 - tar -xpf $tarfile $KMTARPARAMS $extractlist 2> /dev/null - - # Default $S is based on $P; rename the extracted directory to match $S - mv ${KMNAME}-${PV} ${P} || die "Died while moving \"${KMNAME}-${PV}\" to \"${P}\"" - - popd > /dev/null - - if [[ -n ${KDE4_STRICTER} ]]; then - for f in $(__list_needed_subdirectories fatal); do - if [[ ! -e ${S}/${f#*/} ]]; then - eerror "'${f#*/}' is missing" - abort=true - fi - done - [[ -n ${abort} ]] && die "There were missing files." - fi - - kde4-base_src_unpack - - if [[ "${KMNAME}" == "koffice" ]]; then - case ${PN} in - koffice-data|koffice-libs) - ;; - *) - ### basic array - LIB_ARRAY="kostore koodf kokross komain pigmentcms koresources flake koguiutils kopageapp kotext kowmf" - ### dep array - R_QT_kostore="\"/usr/$(get_libdir)/qt4/libQtCore.so\" - \"/usr/$(get_libdir)/qt4/libQtXml.so\" - \"${KDEDIR}/$(get_libdir)/libkdecore.so\"" - R_BAS_kostore="libkostore ${R_QT_kostore}" - R_BAS_koodf="libkoodf ${R_BAS_kostore}" - R_KROSS_kokross=" - \"${KDEDIR}/$(get_libdir)/libkrossui.so\" - \"${KDEDIR}/$(get_libdir)/libkrosscore.so\"" - R_BAS_kokross="libkokross ${R_BAS_koodf} ${R_KROSS_kokross}" - R_QT_komain="\"/usr/$(get_libdir)/qt4/libQtGui.so\"" - R_BAS_komain="libkomain ${R_BAS_koodf} ${R_QT_komain}" - R_CMS_pigmentcms="\"/usr/$(get_libdir)/liblcms.so\"" - R_BAS_pigmentcms="libpigmentcms ${R_BAS_komain} ${R_CMS_pigmentcms}" - R_BAS_koresources="libkoresources ${R_BAS_pigmentcms}" - R_BAS_flake="libflake ${R_BAS_pigmentcms}" - R_BAS_koguiutils="libkoguiutils libkoresources libflake ${R_BAS_pigmentcms}" - R_BAS_kopageapp="libkopageapp ${R_BAS_koguitls}" - R_BAS_kotext="libkotext libkoresources libflake ${R_BAS_pigmentcms}" - ### additional unmentioned stuff - R_BAS_kowmf="libkowmf" - for libname in ${LIB_ARRAY}; do - echo "Fixing library ${libname} with hardcoded path" - for libpath in $(eval "echo \$R_BAS_${libname}"); do - if [[ "${libpath}" != "\"/usr/"* ]]; then - local R="${R} \"${KDEDIR}/$(get_libdir)/${libpath}.so\"" - else - local R="${R} ${libpath}" - fi - done - find ${S} -name CMakeLists.txt -print| xargs -i \ - sed -i \ - -e "s: ${libname} : ${R} :g" \ - -e "s: ${libname}): ${R}):g" \ - -e "s:(${libname} :(${R} :g" \ - -e "s:(${libname}):(${R}):g" \ - -e "s: ${libname}: ${R}:g" \ - {} || die "Fixing library names failed." - done - ;; - esac - fi - esac -} - -# Create lists of files and subdirectories to extract. -# Also see the descriptions of KMMODULE, KMNOMODULE, KMEXTRA, KMCOMPILEONLY, KMEXTRACTONLY and KMTARPARAMS. -kde4-meta_create_extractlists() { - debug-print-function ${FUNCNAME} "$@" - - if has htmlhandbook ${IUSE//+} && use htmlhandbook; then - # We use the basename of $KMMODULE because $KMMODULE can contain - # the path to the module subdirectory. - KMEXTRA_NONFATAL="${KMEXTRA_NONFATAL} doc/${KMMODULE##*/}" - fi - - # Add some CMake-files to KMEXTRACTONLY. - # Note that this actually doesn't include KMEXTRA handling. - # In those cases you should care to add the relevant files to KMEXTRACTONLY - case ${KMNAME} in - kdebase) - KMEXTRACTONLY="${KMEXTRACTONLY} - apps/config-apps.h.cmake - apps/ConfigureChecks.cmake" - ;; - kdebase-runtime) - KMEXTRACTONLY="${KMEXTRACTONLY} - config-runtime.h.cmake" - ;; - kdebase-workspace) - KMEXTRACTONLY="${KMEXTRACTONLY} - config-unix.h.cmake - ConfigureChecks.cmake - config-workspace.h.cmake - config-X11.h.cmake - startkde.cmake" - ;; - kdegames) - if [[ ${PN} != "libkdegames" ]]; then - KMEXTRACTONLY="${KMEXTRACTONLY} - libkdegames" - fi - ;; - kdepim) - KMEXTRACTONLY="${KMEXTRACTONLY} - kleopatra/ConfigureChecks.cmake" - if has kontact ${IUSE//+} && use kontact; then - KMEXTRA="${KMEXTRA} kontact/plugins/${PLUGINNAME:-${PN}}" - KMEXTRACTONLY="${KMEXTRACTONLY} kontactinterfaces/" - fi - ;; - koffice) - KMEXTRACTONLY="${KMEXTRACTONLY} - config-endian.h.cmake - filters/config-filters.h.cmake - config-openctl.h.cmake - config-openexr.h.cmake - config-opengl.h.cmake - config-prefix.h.cmake" - case ${PN} in - koffice-libs|koffice-data) - ;; - *) - # add basic extract for all packages - KMEXTRACTONLY="${KMEXTRACTONLY} - filters/ - libs/ - plugins/" - ;; - esac - ;; - esac - # Don't install cmake modules for split ebuilds to avoid collisions. - case ${KMNAME} in - kdebase-runtime|kdebase-workspace|kdeedu|kdegames|kdegraphics|kdepim) - case ${PN} in - libkdegames|libkdeedu|marble) - KMEXTRA="${KMEXTRA} - cmake/modules/" - ;; - *) - KMCOMPILEONLY="${KMCOMPILEONLY} - cmake/modules/" - ;; - esac - ;; - koffice) - case ${PN} in - koffice-libs|koffice-data|kplato) - ;; - *) - KMEXTRA="${KMEXTRA} filters/${PN}" - esac - ;; - esac - - debug-print "line ${LINENO} ${ECLASS} ${FUNCNAME}: KMEXTRACTONLY ${KMEXTRACTONLY}" -} - -__list_needed_subdirectories() { - local i j kmextra kmextra_expanded kmmodule_expanded kmcompileonly_expanded extractlist topdir - - # We expand KMEXTRA by adding CMakeLists.txt files - kmextra="${KMEXTRA}" - [[ ${1} != fatal ]] && kmextra="${kmextra} ${KMEXTRA_NONFATAL}" - for i in ${kmextra}; do - kmextra_expanded="${kmextra_expanded} ${i}" - j=$(dirname ${i}) - while [[ ${j} != "." ]]; do - kmextra_expanded="${kmextra_expanded} ${j}/CMakeLists.txt"; - j=$(dirname ${j}) - done - done - - # Expand KMMODULE - if [[ -n ${KMMODULE} ]]; then - kmmodule_expanded="${KMMODULE}" - j=$(dirname ${KMMODULE}) - while [[ ${j} != "." ]]; do - kmmodule_expanded="${kmmodule_expanded} $j/CMakeLists.txt"; - j=$(dirname $j) - done - fi - - # Expand KMCOMPILEONLY - for i in ${KMCOMPILEONLY}; do - kmcompileonly_expanded="${kmcompileonly_expanded} ${i}" - j=$(dirname ${i}) - while [[ ${j} != "." ]]; do - kmcompileonly_expanded="${kmcompileonly_expanded} ${j}/CMakeLists.txt"; - j=$(dirname ${j}) - done - done - - debug-print "line ${LINENO} ${ECLASS} ${FUNCNAME} - kmextra_expanded: ${kmextra_expanded}" - debug-print "line ${LINENO} ${ECLASS} ${FUNCNAME} - kmmodule_expanded: ${kmmodule_expanded}" - debug-print "line ${LINENO} ${ECLASS} ${FUNCNAME} - kmcompileonly_expanded: ${kmcompileonly_expanded}" - - - case ${PV} in - scm|9999*) : ;; - *) topdir="${KMNAME}-${PV}/" ;; - esac - - # Create final list of stuff to extract - for i in ${kmmodule_expanded} ${kmextra_expanded} ${kmcompileonly_expanded} \ - ${KMEXTRACTONLY} - do - extractlist="${extractlist} ${topdir}${i}" - done - - echo ${extractlist} -} - -save_library_dependencies() { - local depsfile="${T}/${PN}:${SLOT}" - - echo "Saving library dependendencies in ${depsfile##*/}" - echo "EXPORT_LIBRARY_DEPENDENCIES(\"${depsfile}\")" >> "${S}/CMakeLists.txt" || \ - die "Failed to save the library dependencies." -} - -install_library_dependencies() { - local depsfile="${T}/${PN}:${SLOT}" - echo "Installing library dependendencies as ${depsfile##*/}" - insinto /var/lib/kde - doins "${depsfile}" || die "Failed to install library dependencies." -} - -load_library_dependencies() { - local pn i depsfile - echo "Injecting library dependendencies from '${KMLOADLIBS}'" - - i=0 - for pn in ${KMLOADLIBS} ; do - ((i++)) - depsfile="/var/lib/kde/${pn}:${SLOT}" - [[ -r "${depsfile}" ]] || die "Depsfile '${depsfile}' not accessible. You probably need to reinstall ${pn}." - sed -i -e "${i}iINCLUDE(\"${depsfile}\")" "${S}/CMakeLists.txt" || \ - die "Failed to include library dependencies for ${pn}" - done -} - -# @FUNCTION: kde4-meta_src_compile -# @DESCRIPTION: -# General function for compiling split KDE4 applications. -kde4-meta_src_compile() { - debug-print-function ${FUNCNAME} "$@" - - case "${EAPI}" in - 2 | 2_pre3 | 2_pre2 | 2_pre1) - ;; - *) - kde4-base_meta_configure - ;; - esac - kde4-meta_src_make -} - -_change_cmakelists_parent_dirs() { - debug-print-function ${FUNCNAME} "$@" - - local _olddir _dir - _dir="${S}"/${1} - until [[ ${_dir} == "${S}" ]]; do - _olddir=$(basename "${_dir}") - _dir=$(dirname "${_dir}") - debug-print "${LINENO}: processing ${_dir} CMakeLists.txt searching for ${_olddir}" - if [[ -f ${_dir}/CMakeLists.txt ]]; then - sed -e "/add_subdirectory[[:space:]]*([[:space:]]*${_olddir}[[:space:]]*)/s/#DONOTCOMPILE //g" \ - -e "/ADD_SUBDIRECTORY[[:space:]]*([[:space:]]*${_olddir}[[:space:]]*)/s/#DONOTCOMPILE //g" \ - -i ${_dir}/CMakeLists.txt || die "${LINENO}: died in ${FUNCNAME} while processing ${_dir}" - fi - done -} - -kde4-meta_change_cmakelists() { - debug-print-function ${FUNCNAME} "$@" - - pushd "${S}" > /dev/null - - if [[ -n ${KMSAVELIBS} ]] ; then - save_library_dependencies - fi - - if [[ -n ${KMLOADLIBS} ]] ; then - load_library_dependencies - fi - - comment_all_add_subdirectory ./ - - # Restore "add_subdirectory( cmake )" in ${S}/CMakeLists.txt - if [[ -f "${S}"/CMakeLists.txt ]]; then - sed -e '/add_subdirectory[[:space:]]*([[:space:]]*cmake[[:space:]]*)/s/^#DONOTCOMPILE //' \ - -e '/ADD_SUBDIRECTORY[[:space:]]*([[:space:]]*cmake[[:space:]]*)/s/^#DONOTCOMPILE //' \ - -i "${S}"/CMakeLists.txt || die "${LINENO}: cmake sed died" - fi - - if [[ -z ${KMNOMODULE} ]]; then - # Restore "add_subdirectory" in $KMMODULE subdirectories - find "${S}"/${KMMODULE} -name CMakeLists.txt -print0 | xargs -0 sed -i -e 's/^#DONOTCOMPILE //g' || \ - die "${LINENO}: died in KMMODULE section" - _change_cmakelists_parent_dirs ${KMMODULE} - fi - - # KMCOMPILEONLY - local i - for i in ${KMCOMPILEONLY}; do - debug-print "${LINENO}: KMCOMPILEONLY, processing ${i}" - # Uncomment "add_subdirectory" instructions inside $KMCOMPILEONLY, then comment "install" instructions. - find "${S}"/${i} -name CMakeLists.txt -print0 | \ - xargs -0 sed -i \ - -e 's/^#DONOTCOMPILE //g' \ - -e '/install(.*)/{s/^/#DONOTINSTALL /;}' \ - -e '/^install(/,/)/{s/^/#DONOTINSTALL /;}' \ - -e '/kde4_install_icons(.*)/{s/^/#DONOTINSTALL /;}' || \ - die "${LINENO}: sed died in the KMCOMPILEONLY section while processing ${i}" - _change_cmakelists_parent_dirs ${i} - done - - # KMEXTRA section - for i in ${KMEXTRA}; do - debug-print "${LINENO}: KMEXTRA section, processing ${i}" - find "${S}"/${i} -name CMakeLists.txt -print0 | \ - xargs -0 sed -i -e 's/^#DONOTCOMPILE //g' || \ - die "${LINENO}: sed died uncommenting add_subdirectory instructions in KMEXTRA section while processing ${i}" - _change_cmakelists_parent_dirs ${i} - done - # KMEXTRA_NONFATAL section - for i in ${KMEXTRA_NONFATAL}; do - if [[ -d "${S}"/${i} ]]; then - find "${S}"/${i} -name CMakeLists.txt -print0 | \ - xargs -0 sed -i -e 's/^#DONOTCOMPILE //g' || \ - die "${LINENO}: sed died uncommenting add_subdirectory instructions in KMEXTRA section while processing ${i}" - _change_cmakelists_parent_dirs ${i} - fi - done - - # KMEXTRACTONLY section - Some ebuilds need to comment out some subdirs in KMMODULE and they use KMEXTRACTONLY - for i in ${KMEXTRACTONLY}; do - if [[ -d "${S}"/${i} && -f "${S}"/${i}/../CMakeLists.txt ]]; then - sed -i -e "/([[:space:]]*$(basename $i)[[:space:]]*)/s/^/#DONOTCOMPILE /" "${S}"/${i}/../CMakeLists.txt || \ - die "${LINENO}: sed died while working in the KMEXTRACTONLY section while processing ${i}" - fi - done - - case ${KMNAME} in - kdebase-workspace) - # COLLISION PROTECT section - # Only install the startkde script as part of kde-base/kdebase-startkde, - # instead of with every package. - if [[ ${PN} != "kdebase-startkde" && -f "${S}"/CMa