diff options
| author | Tomas Chvatal <scarabeus@gentoo.org> | 2009-03-09 20:40:46 +0100 |
|---|---|---|
| committer | Tomas Chvatal <scarabeus@gentoo.org> | 2009-03-09 20:42:24 +0100 |
| commit | ebf3a2b35050dea9c765e594cf05ad114b28b8b3 (patch) | |
| tree | 8a261f1690e0fd633c9a868e442f42d7cf9ec588 /eclass | |
| parent | 437deba8561a7c637d9c2b7ef5e541be0ea67e06 (diff) | |
| download | kde-ebf3a2b35050dea9c765e594cf05ad114b28b8b3.tar.gz kde-ebf3a2b35050dea9c765e594cf05ad114b28b8b3.tar.bz2 kde-ebf3a2b35050dea9c765e594cf05ad114b28b8b3.zip | |
Synced with the tree.
Diffstat (limited to 'eclass')
| -rw-r--r-- | eclass/kde4-base.eclass | 705 | ||||
| -rw-r--r-- | eclass/kde4-functions.eclass | 282 | ||||
| -rw-r--r-- | eclass/kde4-meta.eclass | 696 |
3 files changed, 0 insertions, 1683 deletions
diff --git a/eclass/kde4-base.eclass b/eclass/kde4-base.eclass deleted file mode 100644 index 4dc4c673a68..00000000000 --- a/eclass/kde4-base.eclass +++ /dev/null @@ -1,705 +0,0 @@ -# Copyright 2007-2009 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 based ebuilds -# and KDE4 applications. -# -# NOTE: KDE 4 ebuilds by default define EAPI="2", this can be redefined but -# eclass will fail with version older than 2. - -inherit base cmake-utils eutils kde4-functions - -get_build_type -if [[ ${BUILD_TYPE} = live ]]; then - inherit subversion -fi - -EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare src_configure src_compile src_test src_install pkg_postinst pkg_postrm - -# @FUNCTION: kde4-base_set_qt_dependencies -# @DESCRIPTION: -# Set qt dependencies. And use opengl based on OPENGL_REQUIRED variable. -kde4-base_set_qt_dependencies() { - local qtdepend qtopengldepend - - qtdepend=" - x11-libs/qt-core:4[qt3support,ssl] - x11-libs/qt-gui:4[accessibility,dbus] - x11-libs/qt-qt3support:4[accessibility] - x11-libs/qt-script:4 - x11-libs/qt-sql:4[qt3support] - x11-libs/qt-svg:4 - x11-libs/qt-test:4 - " - qtwebkitdepend=" - x11-libs/qt-webkit:4 - " - qtopengldepend=" - x11-libs/qt-opengl:4 - " - - case ${WEBKIT_REQUIRED} in - always) - qtdepend="${qtdepend} - ${qtwebkitdepend}" - ;; - optional) - IUSE="${IUSE} webkit" - qtdepend="${qtdepend} - webkit? ( ${qtwebkitdepend} ) - " - ;; - *) WEBKIT_REQUIRED="never" ;; - 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}" -} - -if [[ ${NEED_KDE} != "none" ]] ; then - # Qt - kde4-base_set_qt_dependencies - - # Xorg - COMMONDEPEND="${COMMONDEPEND} - >=x11-base/xorg-server-1.5.2 - " - - # X11 libs - COMMONDEPEND="${COMMONDEPEND} - x11-libs/libXext - x11-libs/libXt - x11-libs/libXxf86vm - " - - # localization deps - # DISABLED UNTIL PMS decide correct approach :( - if [[ -n ${KDE_LINGUAS} ]]; then - LNG_DEP="" - for _lng in ${KDE_LINGUAS}; do - # there must be or due to issue if lingua is not present in kde-l10n so - # it wont die but pick kde-l10n as-is. - LNG_DEP="${LNG_DEP} - || ( kde-base/kde-l10n[linguas_${_lng},kdeprefix=] kde-base/kde-l10n[kdeprefix=] )" - done - fi - - # Set common dependencies for all ebuilds that inherit this eclass - DEPEND="${DEPEND} ${COMMONDEPEND} - >=dev-util/cmake-2.6.2 - dev-util/pkgconfig - >=sys-apps/sandbox-1.3.2 - " - RDEPEND="${RDEPEND} ${COMMONDEPEND}" -fi # NEED_KDE != NONE block - -if [[ $BUILD_TYPE = live ]]; then - # Disable tests for live ebuilds - RESTRICT="${RESTRICT} test" - # Live ebuilds in kde-base default to kdeprefix by default - IUSE="${IUSE} +kdeprefix" -else - # All other ebuild types default to -kdeprefix as before - IUSE="${IUSE} kdeprefix" -fi - -# @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: WEBKIT_REQUIRED -# @DESCRIPTION: -# Is qt-webkit requred? Possible values are 'always', 'optional' and 'never'. -# This variable must be set before inheriting any eclasses. Defaults to 'never'. -WEBKIT_REQUIRED="${WEBKIT_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. -# For kde-base packages, if it is not set by the ebuild, -# it's assumed that the required KDE4 version is the latest available. -# For non kde-base packages, it is also set to the latest by default. -# -# For more precise adjustments or for specifying particular kde version, -# KDE_MINIMAL variable can be used. -# -# @CODE -# Acceptable values are: -# - latest - Use latest version in the portage tree -# Default for kde-base ebuilds. -# - live - Use live release (live ebuilds) -# - none - Let the ebuild handle SLOT, kde dependencies, KDEDIR, ... -# - 4.2, 4.1, kde-4 - respective slots for kde versions -# @CODE -# Note: default NEED_KDE is latest -NEED_KDE="${NEED_KDE:=latest}" -export NEED_KDE - -# @ECLASS-VARIABLE: KDE_MINIMAL -# @DESCRIPTION: -# This wariable is used when NEED_KDE="latest" is set, to specify the -# required KDE minimal version for which apps will work. -# @CODE -# KDE_MINIMAL="-4.1" -# @CODE -# Note: default minimal version is kde-4.1, which means that the apps will work -# with any KDE version >=${KDE_MINIMAL} -KDE_MINIMAL="${KDE_MINIMAL:=4.2}" -export KDE_MINIMAL - -# FIXME: the code section, explanation of live. The last sentence needs other -# formulation too. -# -# @ECLASS-VARIABLE: KDE_WANTED -# @DESCRIPTION: -# When NEED_KDE=latest is inherited, KDE_WANTED serves to indicate the prefered kde -# version. It's value is looked for before any other. Useful when having more -# +kdeprefix installs: you can choose which kde version, if present, to link -# against. -# -# @CODE -# Acceptable values are: -# stable = whatever is main tree (now 4.1) -# testing = whatever is in testing on main tree -# snapshot = whatever is released under snapshots (4.2 at present) -# live = live svn ebuilds, also default value, do not be scared it goes in this -# -# order: live->snapshot->testing->stable, when searching for kde. This way we -# allow users to use just kde4snapshots and use software from the tree. -KDE_WANTED="${KDE_WANTED:=live}" -export KDE_WANTED - -case ${NEED_KDE} in - latest) - if [[ $KDEBASE = kde-base ]]; then - case ${PV} in - 4.3* | 4.2.9* | 4.2.8* | 4.2.7* | 4.2.6*) - _kdedir="4.3" - _pv="-${PV}:4.3" - _pvn="-${PV}" - ;; - 4.2* | 4.1.9* | 4.1.8* | 4.1.7* | 4.1.6*) - _kdedir="4.2" - _pv="-${PV}:4.2" - _pvn="-${PV}" - ;; - 4.1*| 4.0.9* | 4.0.8*) - _kdedir="4.1" - _pv="-${PV}:4.1" - _pvn="-${PV}" - ;; - 4.0*) - _kdedir="4.0" - _pv="-${PV}:kde-4" - _pvn="-${PV}" - ;; - 3.9*) - _kdedir="3.9" - _pv="-${PV}:kde-4" - _pvn="-${PV}" - ;; - 9999*) - _kdedir="live" - _pv="-${PV}:live" - _pvn="-${PV}" - ;; - *) - die "NEED_KDE=latest not supported for PV=${PV}" ;; - esac - _operator=">=" - else - # this creates dependency on any version of kde4 - _operator=">=" - _pv="-${KDE_MINIMAL}" - _pvn=${_pv} - fi - ;; - - # NEED_KDE="${PV}" - scm|svn|live|9999*) - _kdedir="live" - _operator=">=" - _pv="-${NEED_KDE}:live" - _pvn="-${NEED_KDE}" - export NEED_KDE="live" - ;; - 4.3 | 4.2.9* | 4.2.8* | 4.2.7* | 4.2.6*) - _kdedir="4.3" - _pv="-${NEED_KDE}:4.3" - _pvn="-${NEED_KDE}" - _operator=">=" - ;; - 4.2 | 4.1.9* | 4.1.8* | 4.1.7* | 4.1.6*) - _kdedir="4.2" - _pv="-${NEED_KDE}:4.2" - _pvn="-${NEED_KDE}" - _operator=">=" - ;; - 4.1 | 4.0.9* | 4.0.8*) - _kdedir="4.1" - _pv="-${NEED_KDE}:4.1" - _pvn="-${NEED_KDE}" - _operator=">=" - ;; - 4.0* | 4) - _kdedir="4.0" - _operator=">=" - _pv="-${NEED_KDE}:kde-4" - _pvn="-${NEED_KDE}" - ;; - 3.9*) - _kdedir="3.9" - _operator=">=" - _pv="-${NEED_KDE}:kde-4" - _pvn="-${NEED_KDE}" - ;; - - # 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 - 9999*) SLOT="live" ;; - *) SLOT="2" ;; - esac - ;; - kdevelop) - case ${PV} in - 9999*) SLOT="live" ;; - 4.0*|3.9*) SLOT="4" ;; - esac - ;; - kdevplatform) - case ${PV} in - 9999*) SLOT="live" ;; - 1.0*|0.9*) SLOT="1" ;; - esac - ;; - *) - case ${PV} in - 9999*) SLOT="live" ;; - 4.3* | 4.2.9* | 4.2.8* | 4.2.7* | 4.2.6*) SLOT="4.3" ;; - 4.2* | 4.1.9* | 4.1.8* | 4.1.7* | 4.1.6*) SLOT="4.2" ;; - 4.1* | 4.0.9* | 4.0.8*) SLOT="4.1" ;; - *) SLOT="4.1" ;; - esac - ;; - esac - fi - fi - - # Block installation of other SLOTS unless kdeprefix - 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 [[ ${SLOT} != ${KDE_SLOT} ]]; then - RDEPEND="${RDEPEND} - !kdeprefix? ( !kde-base/${PN}:${KDE_SLOT}[-kdeprefix] ) - " - fi - done - - # Adding kdelibs and kdebase-data deps to all other packages. - if [[ ${PN} != kdelibs ]]; then - DEPEND="${DEPEND} - kdeprefix? ( ${_operator}kde-base/kdelibs${_pv}[kdeprefix] ) - !kdeprefix? ( ${_operator}kde-base/kdelibs${_pvn}[-kdeprefix] ) - " - RDEPEND="${RDEPEND} - kdeprefix? ( ${_operator}kde-base/kdelibs${_pv}[kdeprefix] ) - !kdeprefix? ( ${_operator}kde-base/kdelibs${_pvn}[-kdeprefix] ) - " - if [[ ${PN} != kdepimlibs && ${PN} != kdebase-data ]]; then - RDEPEND="${RDEPEND} - kdeprefix? ( ${_operator}kde-base/kdebase-data${_pv}[kdeprefix] ) - !kdeprefix? ( ${_operator}kde-base/kdebase-data${_pvn}[-kdeprefix] ) - " - fi - fi - unset _operator _pv _pvn -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 ${BUILD_TYPE} in - live) - SRC_URI="" - ESVN_MIRROR=${ESVN_MIRROR:=svn://anonsvn.kde.org/home/kde} - # Split ebuild, or extragear stuff - if [[ -n ${KMNAME} ]]; then - ESVN_PROJECT="${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/${KMNAME#kdebase-}" - ;; - kdereview) - ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}" - ;; - kde*) - ESVN_REPO_URI="${ESVN_MIRROR}/trunk/KDE/${KMNAME}" - ;; - extragear*|playground*) - ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}" - ;; - koffice) - ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}" - ;; - *) - ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}" - ;; - esac - else - # kdelibs, kdepimlibs - ESVN_REPO_URI="${ESVN_MIRROR}/trunk/KDE/${PN}" - ESVN_PROJECT="${PN}" - fi - # limit syncing to 1 hour. - ESVN_UP_FREQ=${ESVN_UP_FREQ:-1} - ;; - *) - if [[ -n ${KDEBASE} ]]; then - if [[ -n ${KMNAME} ]]; then - case ${KMNAME} in - kdebase-apps) - _kmname="kdebase" ;; - *) - _kmname=${KMNAME} ;; - esac - else - _kmname=${PN} - fi - _kmname_pv="${_kmname}-${PV}" - if [[ $NEED_KDE != live ]]; then - case ${KDEBASE} in - kde-base) - case ${PV} in - 4.2.9* | 4.2.8* | 4.2.7* | 4.2.6*) - SRC_URI="http://dev.gentooexperimental.org/~alexxy/kde/${PV}/${_kmname_pv}.tar.lzma" ;; - 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 ${KDEDIR} 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 - - # Search for best suitable kde installation for misc kde package. - # Computation based on NEED_KDE and KDE_MINIMAL - [[ ${KDEBASE} != kde-base ]] && [[ ${NEED_KDE} = latest || ${NEED_KDE} = none ]] && get_latest_kdedir - - # Set PREFIX - if use kdeprefix; then - KDEDIR="/usr/kde/${_kdedir}" - KDEDIRS="/usr/local/:/usr:${KDEDIR}" - else - KDEDIR="/usr" - KDEDIRS="/usr/local/:/usr" - fi - # Set the prefix based on KDEDIR - # Make it a consequence of kdeprefix - PREFIX=${KDEDIR} - - unset _kdedir - - # check if qt has correct deps - [[ -n ${QT4_BUILT_WITH_USE_CHECK} || -n ${KDE4_BUILT_WITH_USE_CHECK[@]} ]] && \ - die "built_with_use illegal in this EAPI!" - - if [[ ${BUILD_TYPE} = live && -z ${I_KNOW_WHAT_I_AM_DOING} ]]; then - echo - elog "WARNING! This is an experimental live ebuild of ${KMNAME:-${PN}}" - elog "Use it at your own risk." - elog "Do _NOT_ file bugs at bugs.gentoo.org because of this ebuild!" - echo - fi -} - -# @FUNCTION: kde4-base_src_unpack -# @DESCRIPTION: -# This function unpacks the source tarballs for KDE4 applications. -kde4-base_src_unpack() { - debug-print-function ${FUNCNAME} "$@" - - if [[ ${BUILD_TYPE} = live ]]; then - migrate_store_dir - subversion_src_unpack - else - base_src_unpack - fi -} - -# @FUNCTION: kde4-base_src_compile -# @DESCRIPTION: -# General pre-configure and pre-compile function for KDE4 applications. -# It also handles translations if KDE_LINGUAS is defined. See KDE_LINGUAS and -# enable_selected_linguas() in kde4-functions.eclass(5) for further details. -kde4-base_src_prepare() { - debug-print-function ${FUNCNAME} "$@" - - # Only enable selected languages, used for KDE extragear apps. - if [[ -n ${KDE_LINGUAS} ]]; then - enable_selected_linguas - fi - - base_src_prepare - - # Save library dependencies - if [[ -n ${KMSAVELIBS} ]] ; then - save_library_dependencies - fi - - # Inject library dependencies - if [[ -n ${KMLOADLIBS} ]] ; then - load_library_dependencies - fi -} - -# @FUNCTION: kde4-base_src_configure -# @DESCRIPTION: -# Function for configuring the build of KDE4 applications. -kde4-base_src_configure() { - debug-print-function ${FUNCNAME} "$@" - - # Handle common release builds - if ! has debug ${IUSE//+} || ! use debug; then - append-cppflags -DQT_NO_DEBUG - fi - - # Enable generation of HTML handbook - if has htmlhandbook ${IUSE//+} && use htmlhandbook; then - ebegin "Enabling building of HTML handbook" - mycmakeargs="${mycmakeargs} -DKDE4_ENABLE_HTMLHANDBOOK=ON" - eend $? - 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 - use kdeprefix || mycmakeargs="${mycmakeargs} -DSYSCONF_INSTALL_DIR=/etc" - - # Set environment - QTEST_COLORED=1 - QT_PLUGIN_PATH="${KDEDIR}/$(get_libdir)/kde4/plugins/" - - # Hardcode path to *.pc KDE files - export PKG_CONFIG_PATH="${PKG_CONFIG_PATH:+${PKG_CONFIG_PATH}:}${KDEDIR}/$(get_libdir)/pkgconfig" - - # Override some environment variables - PATH="${KDEDIR}/bin:${PATH}" - LDPATH="${KDEDIR}/$(get_libdir):${LDPATH}" - - # Set cmake prefixes to allow buildsystem to localize valid KDE installation when more are present - if use kdeprefix; then - mycmakeargs="${mycmakeargs} - -DCMAKE_SYSTEM_INCLUDE_PATH=${KDEDIR}/include - -DCMAKE_SYSTEM_LIBRARY_PATH=${KDEDIR}/$(get_libdir) - -DCMAKE_SYSTEM_PREFIX_PATH=${KDEDIR} - -DCMAKE_SYSTEM_PROGRAM_PATH=${KDEDIR}/bin" - fi - - [ -e CMakeLists.txt ] && cmake-utils_src_configure -} - -# @FUNCTION: kde4-base_src_compile -# @DESCRIPTION: -# General function for compiling KDE4 applications. -kde4-base_src_compile() { - debug-print-function ${FUNCNAME} "$@" - - kde4-base_src_make -} - -# @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} "$@" - - if [[ -d "$WORKDIR/${PN}_build" ]]; then - pushd "${WORKDIR}/${PN}_build" > /dev/null - fi - [ -e [Mm]akefile ] && 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_configure - kde4-base_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} "$@" - - if [[ -n ${KMSAVELIBS} ]] ; then - install_library_dependencies - fi - - 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() { - debug-print-function ${FUNCNAME} "$@" - - 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() { - debug-print-function ${FUNCNAME} "$@" - - buildsycoca -} diff --git a/eclass/kde4-functions.eclass b/eclass/kde4-functions.eclass deleted file mode 100644 index 89559e9c727..00000000000 --- a/eclass/kde4-functions.eclass +++ /dev/null @@ -1,282 +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.12 2009/02/10 20:07:24 scarabeus Exp $ - -# @ECLASS: kde4-functions.eclass -# @MAINTAINER: -# kde@gentoo.org -# @BLURB: Common ebuild functions for KDE 4 packages -# @DESCRIPTION: -# This eclass contains all functions shared by the different eclasses, -# for KDE 4 ebuilds. - -# @ECLASS-VARIABLE: EAPI -# @DESCRIPTION: -# By default kde4 eclasses wants eapi 2 which might be redefinable to newer -# versions. -case ${EAPI:-0} in - 2) : ;; - *) die "No way! EAPI other than 2 is not supported for now." ;; -esac - -# @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 later than 4.0. The live-ebuilds use -# KDE_LIVE_SLOTS instead. -KDE_SLOTS=( kde-4 4.1 4.2 4.3 ) - -# @ECLASS-VARIABLE: KDE_LIVE_SLOTS -# @DESCRIPTION: -# The slots used by all KDE live versions. -KDE_LIVE_SLOTS=( live ) - -# @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 [[ -z ${ROOT%%/} && -x ${KDEDIR}/bin/kbuildsycoca4 ]]; 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:${KDEDIR}/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 those 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 this ebuild supports. -# These translations are automatically added to IUSE. Therefore ebuilds must set -# this variable before inheriting any eclasses. To enable only 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 translations supported by -# the package (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 sr_mess wp - - # ebuild overridable linguas directory definition - KDE_LINGUAS_DIR=${KDE_LINGUAS_DIR:=${S}/po} - cd "$KDE_LINGUAS_DIR" || die "wrong linguas dir specified" - - # fix all various crazy sr@Latn variations - # this part is only ease for ebuilds, so there wont be any die when this - # fail at any point - sr_mess="sr@latn sr@latin sr@Latin" - for wp in ${sr_mess}; do - [[ -e "$wp.po" ]] && mv "$wp.po" "sr@Latn.po" - if [[ -d "$wp" ]]; then - # move dir and fix cmakelists - mv "$wp" "sr@Latn" - sed -i \ - -e "s:$wp:sr@Latin:g" \ - CMakeLists.txt - fi - done - - for lingua in ${KDE_LINGUAS}; do - if [[ -e "$lingua.po" ]]; then - mv "$lingua.po" "$lingua.po.old" - fi - done - comment_all_add_subdirectory "${KDE_LINGUAS_DIR}" - for lingua in ${LINGUAS}; do - ebegin "Enabling LANGUAGE: ${lingua}" - if [[ -d "$lingua" ]]; then - sed -e "/add_subdirectory([[:space:]]*${lingua}[[:space:]]*)[[:space:]]*$/ s/^#DONOTCOMPILE //" \ - -e "/ADD_SUBDIRECTORY([[:space:]]*${lingua}[[:space:]]*)[[:space:]]*$/ s/^#DONOTCOMPILE //" \ - -i CMakeLists.txt || die "Sed to uncomment linguas_${lingua} failed." - fi - if [[ -e "$lingua.po.old" ]]; then - mv "$lingua.po.old" "$lingua.po" - fi - eend $? - done -} - -# @FUNCTION: get_build_type -# @DESCRIPTION: -# Determine whether we are using live ebuild or tbzs. -get_build_type() { - if [[ $SLOT = live || $PV = 9999* ]]; then - BUILD_TYPE="live" - else - BUILD_TYPE="release" - fi - export BUILD_TYPE -} - -# @FUNCTION: get_latest_kdedir -# @DESCRIPTION: -# We set up KDEDIR according to the latest KDE version installed; installing our -# package for all available installs is just insane. -# We can check for kdelibs because it is the most basic package; no KDE package -# working without it. This might be changed in future. -get_latest_kdedir() { - case ${KDE_WANTED} in - # note this will need to be updated as stable moves and so on - live) - _versions="9999 4.2.61 4.2.0 4.1.0" - ;; - snapshot) - _versions="4.2.61 4.2.0 4.1.0 9999" - ;; - testing) - _versions="4.2.0 4.1.0 4.2.61 9999" - ;; - stable) - _versions="4.2.0 4.1.0 4.1.61 9999" - ;; - *) die "KDE_WANTED=${KDE_WANTED} not supported here." ;; - esac - # check if exists and fallback as we go - for X in ${_versions}; do - if has_version ">=kde-base/kdelibs-${X}"; then - # figure out which X we are in and set it into _kdedir - case ${X} in - # also keep track here same for kde_wanted - 9999) - _kdedir="live" - break - ;; - 4.3.0 | 4.2.61) - _kdedir="4.3" - break - ;; - 4.2.0 | 4.1.61) - _kdedir="4.2" - break - ;; - 4.1.0) - _kdedir="4.1" - break - ;; - esac - fi - done - - debug-print-function ${FUNCNAME} "$@" "KDE_WANTED=${KDE_WANTED} -> _kdedir=${_kdedir}" -} - -# @FUNCTION: migrate_store_dir -# @DESCRIPTION: -# Migrate the remnants of ${ESVN_STORE_DIR}/KDE/ to ${ESVN_STORE_DIR}/. -# Perform experimental split of kdebase to kdebase-apps. -migrate_store_dir() { - local cleandir - cleandir="${ESVN_STORE_DIR}/KDE" - if [[ -d "${cleandir}" ]]; then - ewarn "'${cleandir}' has been found. Moving contents to new location." - addwrite "${ESVN_STORE_DIR}" - # Split kdebase - local module - if pushd "${cleandir}"/kdebase/kdebase > /dev/null; then - for module in `find . -maxdepth 1 -type d -name [a-z0-9]\*`; do - module="${module#./}" - mkdir -p "${ESVN_STORE_DIR}/kdebase-${module}" && mv -f "${module}" "${ESVN_STORE_DIR}/kdebase-${module}" || \ - die "Failed to move to '${ESVN_STORE_DIR}/kdebase-${module}'." - done - popd > /dev/null - rm -fr "${cleandir}/kdebase" || \ - die "Failed to remove ${cleandir}/kdebase. You need to remove it manually." - fi - # Move the rest - local pkg - for pkg in "${cleandir}"/*; do - mv -f "${pkg}" "${ESVN_STORE_DIR}"/ || eerror "failed to move ${pkg}" - done - rmdir "${cleandir}" || die "Could not move obsolete KDE store dir. Please move '${cleandir}' contents to appropriate location (possibly ${ESVN_STORE_DIR}) and manually remove '${cleandir}' in order to continue." - fi -} - -# Functions handling KMLOADLIBS and KMSAVELIBS - -# @FUNCTION: save_library_dependencies -# @DESCRIPTION: -# Add exporting CMake dependencies for current package -save_library_dependencies() { - local depsfile="${T}/${PN}:${SLOT}" - - ebegin "Saving library dependendencies in ${depsfile##*/}" - echo "EXPORT_LIBRARY_DEPENDENCIES(\"${depsfile}\")" >> "${S}/CMakeLists.txt" || \ - die "Failed to save the library dependencies." - eend $? -} - -# @FUNCTION: install_library_dependencies -# @DESCRIPTION: -# Install generated CMake library dependencies to /var/lib/kde -install_library_dependencies() { - local depsfile="$T/$PN:$SLOT" - ebegin "Installing library dependendencies as ${depsfile##*/}" - insinto /var/lib/kde - doins "${depsfile}" || die "Failed to install library dependencies." - eend $? -} - -# @FUNCTION: load_library_dependencies -# @DESCRIPTION: -# Inject specified library dependencies in current package -load_library_dependencies() { - local pn i depsfile - ebegin "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 - eend $? -} diff --git a/eclass/kde4-meta.eclass b/eclass/kde4-meta.eclass deleted file mode 100644 index 18f47d8e5e0..00000000000 --- a/eclass/kde4-meta.eclass +++ /dev/null @@ -1,696 +0,0 @@ -# Copyright 1999-2009 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: $ -# -# @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. - -inherit kde4-base versionator - -EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare src_configure src_compile src_test src_install pkg_postinst pkg_postrm - -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 - -# Add dependencies that all packages in a certain module share. -case ${KMNAME} in - kdebase|kdebase-{apps,workspace,runtime}) - DEPEND="${DEPEND} - >=kde-base/qimageblitz-0.0.4 - " - RDEPEND="${RDEPEND} - >=kde-base/qimageblitz-0.0.4 - " - ;; - kdenetwork) - DEPEND="${DEPEND} - >=kde-base/kdepimlibs-${PV}:${SLOT}[kdeprefix=] - " - RDEPEND="${RDEPEND} - >=kde-base/kdepimlibs-${PV}:${SLOT}[kdeprefix=] - " - ;; - kdepim) - DEPEND="${DEPEND} - dev-libs/boost - >=kde-base/kdepimlibs-${PV}:${SLOT}[kdeprefix=] - " - RDEPEND="${RDEPEND} - dev-libs/boost - >=kde-base/kdepimlibs-${PV}:${SLOT}[kdeprefix=] - " - case ${PN} in - akregator|kaddressbook|kjots|kmail|kmobiletools|knode|knotes|korganizer|ktimetracker) - IUSE="+kontact" - RDEPEND="${RDEPEND} - kontact? ( >=kde-base/kontactinterfaces-${PV}:${SLOT}[kdeprefix=] ) - " - ;; - esac - ;; - kdegames) - if [[ ${PN} != libkdegames ]]; then - DEPEND="${DEPEND} - >=kde-base/libkdegames-${PV}:${SLOT}[kdeprefix=] - " - RDEPEND="${RDEPEND} - >=kde-base/libkdegames-${PV}:${SLOT}[kdeprefix=] - " - fi - ;; - koffice) - [[ ${PN} != koffice-data ]] && IUSE="debug" - case ${PV} in - 9999*) - DEPEND="${DEPEND} - !app-office/${PN}:2 - " - ;; - 1.9*|2*) - DEPEND="${DEPEND} - !app-office/${PN}:live - " - ;; - esac - DEPEND="${DEPEND} - !app-office/${PN}:0 - !app-office/koffice:0 - !app-office/koffice-meta:0 - " - case ${PN} in - koffice-data) - DEPEND="${DEPEND} - media-libs/lcms - " - RDEPEND="${RDEPEND} - media-libs/lcms - " - ;; - *) - COMMON_DEPEND=" - dev-cpp/eigen:2 - media-gfx/imagemagick[openexr?] - media-libs/fontconfig - media-libs/freetype:2 - " - DEPEND="${DEPEND} ${COMMON_DEPEND}" - RDEPEND="${RDEPEND} ${COMMON_DEPEND}" - unset COMMON_DEPEND - if [[ ${PN} != koffice-libs && ${PN} != koffice-data ]]; then - DEPEND="${DEPEND} - >=app-office/koffice-libs-${PV}:${SLOT}[kdeprefix=] - " - RDEPEND="${RDEPEND} - >=app-office/koffice-libs-${PV}:${SLOT}[kdeprefix=] - " - fi - ;; - esac - ;; -esac - -debug-print "line ${LINENO} ${ECLASS}: DEPEND ${DEPEND} - after metapackage-specific dependencies" -debug-print "line ${LINENO} ${ECLASS}: RDEPEND ${RDEPEND} - after metapackage-specific dependencies" - -# Useful to build kde4-meta style stuff from extragear/playground (plasmoids etc) -case ${SLOT} in - live) - case ${KMNAME} in - extragear*|playground*)< |
