aboutsummaryrefslogtreecommitdiffstats
path: root/Mk/Uses/kde.mk
diff options
context:
space:
mode:
Diffstat (limited to 'Mk/Uses/kde.mk')
-rw-r--r--Mk/Uses/kde.mk296
1 files changed, 296 insertions, 0 deletions
diff --git a/Mk/Uses/kde.mk b/Mk/Uses/kde.mk
new file mode 100644
index 000000000000..25563df17e69
--- /dev/null
+++ b/Mk/Uses/kde.mk
@@ -0,0 +1,296 @@
+# $FreeBSD$
+#
+# Provides support for KDE-based ports.
+#
+# Feature: kde
+# Usage: USES=kde or USES=kde:ARGS
+# Valid ARGS: 4
+#
+# 4: Depend on KDE4 components and variables.
+#
+# Variables that can be set by a port:
+#
+# USE_KDE List of KDE4 components (other ports) that this
+# port depends on.
+# * foo_build Add a build-time dependency (BUILD_DEPENDS)
+# * foo_run Add a run-time dependency (RUN_DEPENDS)
+# * foo (default) Add both dependencies on component <foo>
+#
+# MAINTAINER: kde@FreeBSD.org
+
+.if !defined(_INCLUDE_USES_KDE_MK)
+_INCLUDE_USES_KDE_MK= yes
+
+_KDE_SUPPORTED= 4
+
+. if empty(kde_ARGS)
+IGNORE= kde needs a version (${_KDE_SUPPORTED})
+. endif
+
+# At the moment we support KDE versions 4.
+. for ver in ${_KDE_SUPPORTED:O:u}
+. if ${kde_ARGS:M${ver}}
+. if !defined(_KDE_VERSION)
+_KDE_VERSION= ${ver}
+. else
+IGNORE?= cannot be installed: different KDE versions specified via kde:[${_KDE_SUPPORTED:S/ //g}] #'
+. endif
+. endif
+. endfor
+
+. if empty(_KDE_VERSION)
+IGNORE?= kde:[${_KDE_SUPPORTED:S/ //g}] needs an argument #'
+. endif
+
+_KDE_RELNAME= KDE${_KDE_VERSION}
+
+# === VERSIONS OF THE DIFFERENT COMPONENTS =====================================
+# Old KDE desktop.
+KDE4_VERSION?= 4.14.3
+KDE4_KDELIBS_VERSION= 4.14.10
+KDE4_ACTIVITIES_VERSION= 4.13.3
+KDE4_WORKSPACE_VERSION= 4.11.21
+KDE4_KDEPIM_VERSION?= 4.14.10
+# Applications version for the kde4-applications.
+KDE4_APPLICATIONS_BRANCH?= Attic
+KDE4_APPLICATIONS_VERSION?= 15.04.3
+KDE4_BRANCH?= stable
+
+# Extended KDE universe applications.
+CALLIGRA_VERSION?= 2.9.11
+CALLIGRA_BRANCH?= stable
+
+KDEVELOP_VERSION?= 4.7.3
+KDEVELOP_BRANCH?= stable
+
+KTP_VERSION?= 0.9.0
+KTP_BRANCH?= stable
+# ==============================================================================
+
+# === INSTALLATION PREFIX ======================================================
+# Define installation prefix.
+KDE_PREFIX= ${LOCALBASE}
+# ==============================================================================
+
+# ==== SETUP CMAKE ENVIRONMENT =================================================
+# Help cmake to find files when testing ports with non-default PREFIX.
+CMAKE_ARGS+= -DCMAKE_PREFIX_PATH="${LOCALBASE}"
+
+. if ${_KDE_VERSION:M*4*}
+CMAKE_ARGS+= -DKDE4_BUILD_TESTS:BOOL=OFF
+. endif
+
+# Set man-page installation prefix.
+CMAKE_ARGS+= -DKDE_INSTALL_MANDIR:PATH="${KDE_PREFIX}/man" \
+ -DMAN_INSTALL_DIR:PATH="${KDE_PREFIX}/man"
+# ==============================================================================
+
+# === SET-UP PLIST_SUB =========================================================
+# Prefix and include directory.
+PLIST_SUB+= KDE_PREFIX="${KDE_PREFIX}"
+# KDE Applications version.
+PLIST_SUB+= KDE_APPLICATIONS_VERSION="${KDE_APPLICATIONS_VERSION}"
+# For KDE4 applications provide KDE4 version numbers.
+. if ${_KDE_VERSION:M*4*}
+PLIST_SUB+= KDE4_VERSION="${KDE4_VERSION}" \
+ KDE4_GENERIC_LIB_VERSION=${KDE4_KDELIBS_VERSION} \
+ KDE4_NON_GENERIC_LIB_VERSION=${KDE4_KDELIBS_VERSION:S,^4,5,} \
+ KDE4_KDELIBS_VERSION=${KDE4_KDELIBS_VERSION} \
+ KDE4_NG_KDELIBS_VERSION=${KDE4_KDELIBS_VERSION:S,^4,5,}
+. endif
+# ==============================================================================
+
+# === HANDLE PYTHON ============================================================
+# TODO: Keep in sync with cmake/modules/PythonMacros.cmake
+_PYTHON_SHORT_VER= ${PYTHON_VERSION:S/^python//:S/.//}
+. if ${_PYTHON_SHORT_VER} > 31
+PLIST_SUB+= PYCACHE="__pycache__/" \
+ PYC_SUFFIX=cpython-${_PYTHON_SHORT_VER}.pyc \
+ PYO_SUFFIX=cpython-${_PYTHON_SHORT_VER}.pyo
+. else
+PLIST_SUB+= PYCACHE="" \
+ PYC_SUFFIX=pyc \
+ PYO_SUFFIX=pyo
+. endif
+# ==============================================================================
+_USE_KDE4_ALL= baloo baloo-widgets baseapps kactivities kate kdelibs \
+ kfilemetadata korundum libkcddb libkcompactdisc \
+ libkdcraw libkdeedu libkdegames libkexiv2 libkipi \
+ libkonq libksane marble nepomuk-core nepomuk-widgets \
+ okular oxygen-icons4 perlkde perlqt pimlibs pykde4 \
+ pykdeuic4 qtruby runtime smokegen smokekde smokeqt \
+ workspace
+# These components are not part of the Software Compilation.
+_USE_KDE4_ALL+= akonadi attica automoc4 ontologies qimageblitz soprano \
+ strigi
+
+# ====================== kde4 components =======================================
+baloo_PORT= sysutils/baloo
+baloo_PATH= ${KDE_PREFIX}/lib/libbaloocore.so
+
+baloo-widgets_PORT= sysutils/baloo-widgets
+baloo-widgets_PATH= ${KDE_PREFIX}/lib/libbaloowidgets.so
+
+baseapps_PORT= x11/kde4-baseapps
+baseapps_PATH= ${KDE_PREFIX}/bin/kfmclient
+baseapps_TYPE= run
+
+kactivities_PORT= x11/kactivities
+kactivities_PATH= ${KDE_PREFIX}/lib/libkactivities.so
+
+kate_PORT= editors/kate
+kate_PATH= ${KDE_PREFIX}/lib/libkateinterfaces.so
+
+kdelibs_PORT= x11/kdelibs4
+kdelibs_PATH= ${KDE_PREFIX}/lib/libkdecore.so
+
+kfilemetadata_PORT= sysutils/kfilemetadata
+kfilemetadata_PATH= ${KDE_PREFIX}/lib/libkfilemetadata.so
+
+korundum_PORT= devel/ruby-korundum
+korundum_PATH= ${KDE_PREFIX}/lib/kde4/krubypluginfactory.so
+korundum_TYPE= run
+
+libkcddb_PORT= audio/libkcddb
+libkcddb_PATH= ${KDE_PREFIX}/lib/libkcddb.so
+
+libkcompactdisc_PORT= audio/libkcompactdisc
+libkcompactdisc_PATH= ${KDE_PREFIX}/lib/libkcompactdisc.so
+
+libkdcraw_PORT= graphics/libkdcraw-kde4
+libkdcraw_PATH= ${KDE_PREFIX}/lib/libkdcraw.so
+
+libkdeedu_PORT= misc/libkdeedu
+libkdeedu_PATH= ${KDE_PREFIX}/lib/libkeduvocdocument.so
+
+libkdegames_PORT= games/libkdegames
+libkdegames_PATH= ${KDE_PREFIX}/lib/libkdegames.so
+
+libkexiv2_PORT= graphics/libkexiv2-kde4
+libkexiv2_PATH= ${KDE_PREFIX}/lib/libkexiv2.so
+
+libkipi_PORT= graphics/libkipi-kde4
+libkipi_PATH= ${KDE_PREFIX}/lib/libkipi.so
+
+libkonq_PORT= x11/libkonq
+libkonq_PATH= ${KDE_PREFIX}/lib/libkonq.so
+
+libksane_PORT= graphics/libksane
+libksane_PATH= ${KDE_PREFIX}/lib/libksane.so
+
+marble_PORT= astro/marble
+marble_PATH= ${KDE_PREFIX}/lib/libmarblewidget.so
+
+nepomuk-core_PORT= sysutils/nepomuk-core
+nepomuk-core_PATH= ${KDE_PREFIX}/lib/libnepomukcore.so
+
+nepomuk-widgets_PORT= sysutils/nepomuk-widgets
+nepomuk-widgets_PATH= ${KDE_PREFIX}/lib/libnepomukwidgets.so
+
+okular_PORT= graphics/okular
+okular_PATH= ${KDE_PREFIX}/lib/libokularcore.so
+
+oxygen-icons4_PORT= x11-themes/kde4-icons-oxygen
+oxygen-icons4_PATH= ${KDE_PREFIX}/share/icons/oxygen/index.theme
+oxygen-icons4_TYPE= run
+
+perlkde_PORT= devel/p5-perlkde
+perlkde_PATH= ${KDE_PREFIX}/lib/kde4/kperlpluginfactory.so
+perlkde_TYPE= run
+
+perlqt_PORT= devel/p5-perlqt
+perlqt_PATH= ${KDE_PREFIX}/bin/puic4
+
+pimlibs_PORT= deskutils/kdepimlibs4
+pimlibs_PATH= ${KDE_PREFIX}/lib/libkpimutils.so
+
+pykde4_PORT= devel/py-pykde4
+pykde4_PATH= ${KDE_PREFIX}/lib/kde4/kpythonpluginfactory.so
+pykde4_TYPE= run
+
+pykdeuic4_PORT= devel/py-pykdeuic4
+pykdeuic4_PATH= ${LOCALBASE}/bin/pykdeuic4
+pykdeuic4_TYPE= run
+
+qtruby_PORT= devel/ruby-qtruby
+qtruby_PATH= ${KDE_PREFIX}/lib/libqtruby4shared.so
+
+runtime_PORT= x11/kde4-runtime
+runtime_PATH= ${KDE_PREFIX}/bin/knotify4
+runtime_TYPE= run
+
+smokegen_PORT= devel/smokegen
+smokegen_PATH= ${KDE_PREFIX}/lib/libsmokebase.so
+
+smokekde_PORT= devel/smokekde
+smokekde_PATH= ${KDE_PREFIX}/lib/libsmokekdecore.so
+
+smokeqt_PORT= devel/smokeqt
+smokeqt_PATH= ${KDE_PREFIX}/lib/libsmokeqtcore.so
+
+workspace_PORT= x11/kde4-workspace
+workspace_PATH= ${KDE_PREFIX}/lib/libkworkspace.so
+
+# Non-Software Compilation components
+akonadi_PORT= databases/akonadi
+akonadi_PATH= ${KDE_PREFIX}/lib/libakonadiprotocolinternals.so
+
+attica_PORT= x11-toolkits/attica
+attica_PATH= ${LOCALBASE}/lib/libattica.so
+
+automoc4_PORT= devel/automoc4
+automoc4_PATH= ${LOCALBASE}/bin/automoc4
+automoc4_TYPE= build
+
+ontologies_PORT= x11-toolkits/shared-desktop-ontologies
+ontologies_PATH= ${LOCALBASE}/share/ontology/core/rdf.ontology
+
+qimageblitz_PORT= x11/qimageblitz
+qimageblitz_PATH= ${LOCALBASE}/lib/libqimageblitz.so
+
+soprano_PORT= textproc/soprano
+soprano_PATH= ${LOCALBASE}/lib/libsoprano.so
+
+strigi_PORT= deskutils/libstreamanalyzer
+strigi_PATH= ${LOCALBASE}/lib/libstreamanalyzer.so.0
+# ====================== end of kde4 components ================================
+
+# end of component list ########################################################
+
+_USE_KDE_ALL= ${_USE_${_KDE_RELNAME}_ALL}
+
+# Iterate through components deprived of suffix.
+. for component in ${USE_KDE:O:u:C/_.+//}
+ # Check that the component is valid.
+. if ${_USE_KDE_ALL:M${component}} != ""
+ # Skip meta-components (currently none).
+. if defined(${component}_PORT) && defined(${component}_PATH)
+${component}_DEPENDS= ${${component}_PATH}:${${component}_PORT}
+ # Check if a dependency type is explicitly requested.
+. if ${USE_KDE:M${component}_*} != "" && ${USE_KDE:M${component}} == ""
+${component}_TYPE= # empty
+. if ${USE_KDE:M${component}_build} != ""
+${component}_TYPE+= build
+. endif
+. if ${USE_KDE:M${component}_run} != ""
+${component}_TYPE+= run
+. endif
+. endif # ${USE_KDE:M${component}_*} != "" && ${USE_KDE:M${component}} == ""
+ # If no dependency type is set, default to full dependency.
+. if !defined(${component}_TYPE)
+${component}_TYPE= build run
+. endif
+ # Set real dependencies.
+. if ${${component}_TYPE:Mbuild} != ""
+BUILD_DEPENDS+= ${${component}_DEPENDS}
+. endif
+. if ${${component}_TYPE:Mrun} != ""
+RUN_DEPENDS+= ${${component}_DEPENDS}
+. endif
+. endif # defined(${component}_PORT) && defined(${component}_PATH)
+. else # ! ${_USE_KDE_ALL:M${component}} != ""
+IGNORE= cannot be installed: unknown USE_KDE component '${component}'
+. endif # ${_USE_KDE_ALL:M${component}} != ""
+. endfor
+
+.endif