summaryrefslogtreecommitdiffstats
path: root/Mk/bsd.kde4.mk
diff options
context:
space:
mode:
Diffstat (limited to 'Mk/bsd.kde4.mk')
-rw-r--r--Mk/bsd.kde4.mk347
1 files changed, 240 insertions, 107 deletions
diff --git a/Mk/bsd.kde4.mk b/Mk/bsd.kde4.mk
index dfed4d4..bec1267 100644
--- a/Mk/bsd.kde4.mk
+++ b/Mk/bsd.kde4.mk
@@ -8,173 +8,306 @@
# Please make sure all changes to this file are past through the maintainer.
# Do not commit them yourself (unless of course you're the Port's Wraith ;).
-Kde_Pre_Include= bsd.kde4.mk
Kde_Include_MAINTAINER= kde@FreeBSD.org
+Kde_Pre_Include= bsd.kde4.mk
#
-# This file contains some variable definitions that are supposed to
-# make your life easier when dealing with ports related to the KDE4
-# desktop environment. It's automatically included when USE_KDE4
-# is defined in the ports' makefile.
+# This file contains some variable definitions that are supposed to make your
+# life easier when dealing with ports related to the KDE Software Compilation 4.
+# It's automatically included when ${USE_KDE4} is defined in a port's Makefile.
#
# KDE4 related ports can use this as follows:
#
-# USE_KDE4= kdehier kdeprefix kdelibs
+# USE_KDE4= kdehier kdelibs kdeprefix
# USE_QT_VER= 4
-# QT_COMPONENTS=corelib #set additional qt4 components here
+# QT_COMPONENTS=corelib # Set additional Qt 4 components here.
#
# .include <bsd.port.mk>
#
+# Additionally, '_build' and '_run' suffixes can be used to force components
+# dependency type (e.g., 'marble_run'). If no suffix is set, a default
+# dependency type will be used. If you want to force both types, add the
+# component twice with both suffixes (e.g., 'pykde4_build pykde4_run').
+#
# Available KDE4 components are:
#
-# akonadi - Akonadi PIM storage service
-# automoc4 - automoc4 tool
-# baseapps - Basic KDE applications (Konqueror, Dolphin)
-# kdeexp - experimental libraries (with non-stable ABI/API)
-# kdehier - Provides common KDE directories
-# kdelibs - The base set of KDE libraries
-# kdeprefix - If set, port will be installed into ${KDE4_PREFIX} instead of ${LOCALBASE}
-# oxygen - icon themes
-# pimlibs - KDE PIM libraries
-# pimruntime - KDE PIM runtime services
-# pykde4 - Python bindings for KDE
-# pykdeuic4 - User Interface Compiler for PyKDE
-# runtime - More KDE applications
-# sharedmime - share-mime-info wrapper for KDE ports
-# workspace - More KDE applications (Plasma, kwin, etc.)
-#
-# These read-only variables can be used in port Makefile:
+# baseapps - Basic applications for KDE Desktop
+# kate - KDE text editor framework
+# kdehier - Hierarchy of common KDE directories
+# kdelibs - KDE Developer Platform
+# kdeprefix - If set, port will be installed into ${KDE4_PREFIX} instead of
+# ${LOCALBASE}
+# korundum - KDE Ruby bindings
+# libkdcraw - KDE LibRaw library
+# libkdeedu - Libraries used by KDE educational applications
+# libkexiv2 - KDE Exiv2 library
+# libkipi - KDE Image Plugin Interface
+# libkonq - Konqueror core library
+# libksane - KDE SANE library
+# marble - KDE virtual globe
+# okular - KDE universal document viewer
+# oxygen - KDE icon theme
+# perlkde - KDE Perl bindings
+# perlqt - Qt 4 Perl bindings
+# pimlibs - KDE-Pim libraries
+# pykde4 - KDE Python bindings
+# pykdeuic4 - PyKDE user interface compiler
+# qtruby - Qt 4 Ruby bindings
+# runtime - Components required by many KDE Applications
+# sharedmime - MIME types database for KDE ports
+# smokegen - SMOKE base libraries
+# smokekde - KDE SMOKE libraries
+# smokeqt - Qt 4 SMOKE libraries
+# workspace - KDE user environments
+# akonadi - Storage server for KDE-Pim
+# attica - Qt library implementing Open Collaboration Services API
+# automoc4 - Automatic moc for Qt 4 packages
+# ontologies - Shared ontologies for semantic searching
+# qimageblitz - KDE graphical effects and filters library
+# soprano - Qt 4 RDF framework
+# strigi - Desktop search daemon
+#
+# These read-only variables can be used in a port's Makefile:
#
# MASTER_SITE_KDE_kde
-# - MASTER_SITE_KDE_kde is equivalent to MASTER_SITE_KDE
-# with :kde tag. It could be used when port needs multiple
-# distfiles from different sites. See for details porters-handbook:
-# http://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/makefile-distfiles.html
-# KDE4_PREFIX - The place where KDE4 ports live. Currently it is {LOCALBASE}/kde4,
-# but this could be changed in a future.
+# - It is equivalent to ${MASTER_SITE_KDE} with :kde tag. It could
+# be used when port needs multiple distfiles from different
+# sites. See for details the Porter's Handbook:
+# http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/porters-handbook/makefile-distfiles.html
+# KDE4_PREFIX - The place where KDE4 ports live. Currently it is
+# ${LOCALBASE}/kde4, but this could change in the future.
#
-KDE4_VERSION= 4.7.4
-KDE4_BRANCH?= stable
-KDEPIM4_VERSION= 4.4.11.1
-KDEPIM4_BRANCH?= stable
-KOFFICE2_VERSION= 2.3.2
-KOFFICE2_BRANCH?= stable
-KDEVELOP_VERSION= 4.2.3
-KDEVELOP_BRANCH?= stable
+KDE4_VERSION?= 4.8.3
+KDE4_BRANCH?= stable
+KOFFICE2_VERSION?= 2.3.2
+KOFFICE2_BRANCH?= stable
+KDEVELOP_VERSION?= 4.2.3
+KDEVELOP_BRANCH?= stable
#
-# KDE4 is installed into its own prefix to not conflict with KDE3
+# KDE4 is installed into its own prefix to avoid conflicting with KDE3.
#
-KDE4_PREFIX?= ${LOCALBASE}/kde4
+
+KDE4_PREFIX?= ${LOCALBASE}/kde4
#
-# Tagged MASTER_SITE_KDE
+# Common definitions for KDE4 ports.
#
-kmaster= ${MASTER_SITE_KDE:S@%/@%/:kde@g}
+
+# ${PREFIX} and ${NO_MTREE} have to be defined in the pre-makefile section.
+.if defined(USE_KDE4) && ${USE_KDE4:Mkdeprefix} != ""
+. if ${.MAKEFLAGS:MPREFIX=*} == ""
+PREFIX= ${KDE4_PREFIX}
+. if ${KDE4_PREFIX} != ${LOCALBASE}
+NO_MTREE= yes
+. endif
+. endif
+.endif
+
+# Tagged ${MASTER_SITE_KDE}.
+kmaster= ${MASTER_SITE_KDE:S@%/@%/:kde@g}
.if !defined(MASTER_SITE_SUBDIR)
MASTER_SITE_KDE_kde= ${kmaster:S@%SUBDIR%/@@g}
.else
-ksub=${MASTER_SITE_SUBDIR}
+ksub= ${MASTER_SITE_SUBDIR}
MASTER_SITE_KDE_kde= ${kmaster:S@%SUBDIR%/@${ksub}/@g}
-.endif # !defined(MASTER_SITE_SUBDIR)
+.endif
+
+PLIST_SUB+= KDE4_PREFIX="${KDE4_PREFIX}"
+
+# The following definitions are not intended for usage in KDE4-dependent ports.
+.if defined(KDE4_BUILDENV)
+
+USE_CMAKE= yes
+CMAKE_SOURCE_PATH= ${WRKSRC}
+USE_LDCONFIG= yes
+
+. if ${KDE4_BRANCH} == "unstable"
+WITH_DEBUG= yes
+. endif
+
+. if defined(WITH_DEBUG)
+CMAKE_BUILD_TYPE= DebugFull
+. endif
+
+PLIST_SUB+= KDE4_VERSION="${KDE4_VERSION}"
+
+CONFIGURE_WRKSRC= ${CMAKE_SOURCE_PATH}/build
+BUILD_WRKSRC= ${CONFIGURE_WRKSRC}
+INSTALL_WRKSRC?= ${BUILD_WRKSRC}
+
+post-extract: kde4-create-builddir
+
+kde4-create-builddir:
+ ${MKDIR} ${BUILD_WRKSRC}
+
+.endif # defined(KDE4_BUILDENV)
+
+.endif # !defined(_POSTMKINCLUDED) && !defined(Kde_Pre_Include)
+
+.if defined(_POSTMKINCLUDED) && !defined(Kde_Post_Include)
+
+Kde_Post_Include= bsd.kde4.mk
#
-# KDE4 modules
+# KDE4 components.
+# Set ${component}_TYPE to 'build' or 'run' to specify default dependency type
+# for ${component}; otherwise, it will default to 'build run'.
#
-_USE_KDE4_ALL= akonadi automoc4 baseapps kdebase kdehier kdelibs kdeprefix \
- oxygen pimlibs pimruntime pykde4 pykdeuic4 runtime \
- sharedmime workspace
-akonadi_LIB_DEPENDS= akonadiprotocolinternals.1:${PORTSDIR}/databases/akonadi
+_USE_KDE4_ALL= baseapps kdebase kate kdehier kdelibs kdeprefix korundum \
+ libkdcraw libkdeedu libkexiv2 libkipi libkonq libksane \
+ marble okular oxygen perlkde perlqt pimlibs pykde4 \
+ pykdeuic4 qtruby runtime sharedmime smokegen smokekde \
+ smokeqt workspace
+# These components are not shipped with the Software Compilation.
+_USE_KDE4_ALL+= akonadi attica automoc4 ontologies qimageblitz soprano \
+ strigi
-automoc4_BUILD_DEPENDS= ${LOCALBASE}/bin/automoc4:${PORTSDIR}/devel/automoc4
+# Do baseapps and runtime really need to be in ${BUILD_DEPENDS}?
+baseapps_PORT= x11/kde4-baseapps
+baseapps_PATH= ${KDE4_PREFIX}/bin/kfmclient
-baseapps_LIB_DEPENDS= konq.7:${PORTSDIR}/x11/kde4-baseapps
-kdebase_LIB_DEPENDS= ${baseapps_LIB_DEPENDS}
+# kdebase was replaced by baseapps.
+kdebase_PORT= ${baseapps_PORT}
+kdebase_PATH= ${baseapps_PATH}
-kdehier_RUN_DEPENDS= kdehier4>=1:${PORTSDIR}/misc/kdehier4
+kate_PORT= editors/kate
+kate_PATH= ${KDE4_PREFIX}/lib/libkateinterfaces.so.5
-kdelibs_LIB_DEPENDS= kimproxy.5:${PORTSDIR}/x11/kdelibs4
+kdehier_PORT= misc/kdehier4
+kdehier_PATH= kdehier4>=0
+kdehier_TYPE= run
-kdeprefix_PREFIX= ${KDE4_PREFIX}
+kdelibs_PORT= x11/kdelibs4
+kdelibs_PATH= ${KDE4_PREFIX}/lib/libkdecore.so.7
-oxygen_RUN_DEPENDS= ${KDE4_PREFIX}/share/icons/oxygen/index.theme:${PORTSDIR}/x11-themes/kde4-icons-oxygen
+korundum_PORT= devel/kdebindings4-ruby-korundum
+korundum_PATH= ${KDE4_PREFIX}/lib/kde4/krubypluginfactory.so
+korundum_TYPE= run
-pimlibs_LIB_DEPENDS= kpimutils.5:${PORTSDIR}/deskutils/kdepimlibs4
+libkdcraw_PORT= graphics/libkdcraw-kde4
+libkdcraw_PATH= ${KDE4_PREFIX}/lib/libkdcraw.so.20
-pimruntime_LIB_DEPENDS= kdepim-copy.5:${PORTSDIR}/deskutils/kdepim4-runtime
+libkdeedu_PORT= misc/libkdeedu
+libkdeedu_PATH= ${KDE4_PREFIX}/lib/libkeduvocdocument.so.5
-pykde4_RUN_DEPENDS= ${KDE4_PYTHON_SITELIBDIR}/PyKDE4/kdeui.so:${PORTSDIR}/devel/kdebindings4-python-pykde4
+libkexiv2_PORT= graphics/libkexiv2-kde4
+libkexiv2_PATH= ${KDE4_PREFIX}/lib/libkexiv2.so.10
-pykdeuic4_RUN_DEPENDS= ${LOCALBASE}/bin/pykdeuic4:${PORTSDIR}/devel/kdebindings4-python-pykdeuic4
+libkipi_PORT= graphics/libkipi-kde4
+libkipi_PATH= ${KDE4_PREFIX}/lib/libkipi.so.8
-runtime_BUILD_DEPENDS= ${KDE4_PREFIX}/bin/kdebugdialog:${PORTSDIR}/x11/kde4-runtime
-runtime_RUN_DEPENDS= ${KDE4_PREFIX}/bin/kdebugdialog:${PORTSDIR}/x11/kde4-runtime
+libkonq_PORT= x11/libkonq
+libkonq_PATH= ${KDE4_PREFIX}/lib/libkonq.so.7
-sharedmime_BUILD_DEPENDS= kde4-shared-mime-info>=1:${PORTSDIR}/misc/kde4-shared-mime-info
-sharedmime_RUN_DEPENDS= kde4-shared-mime-info>=1:${PORTSDIR}/misc/kde4-shared-mime-info
+libksane_PORT= graphics/libksane
+libksane_PATH= ${KDE4_PREFIX}/lib/libksane.so.0
-workspace_LIB_DEPENDS= kscreensaver.5:${PORTSDIR}/x11/kde4-workspace
+marble_PORT= astro/marble
+marble_PATH= ${KDE4_PREFIX}/lib/libmarblewidget.so.13
+okular_PORT= graphics/okular
+okular_PATH= ${KDE4_PREFIX}/lib/libokularcore.so.1
-PLIST_SUB+= KDE4_PREFIX="${KDE4_PREFIX}"
+oxygen_PORT= x11-themes/kde4-icons-oxygen
+oxygen_PATH= ${KDE4_PREFIX}/share/icons/oxygen/index.theme
+oxygen_TYPE= run
-KDE4_PYTHON_SITELIBDIR= ${PYTHON_SITELIBDIR:S;${PYTHONBASE};${KDE4_PREFIX};}
+perlkde_PORT= devel/kdebindings4-perl-perlkde
+perlkde_PATH= ${KDE4_PREFIX}/lib/kde4/kperlpluginfactory.so
+perlkde_TYPE= run
-#
-# Common build related stuff for kde4 ports. It's not intended for usage
-# in KDE4-dependent ports
-#
-.if defined(KDE4_BUILDENV)
+perlqt_PORT= devel/kdebindings4-perl-perlqt
+perlqt_PATH= ${KDE4_PREFIX}/bin/puic4
-.if ${KDE4_BRANCH} == "unstable"
-WITH_DEBUG=yes
-.endif
+pimlibs_PORT= deskutils/kdepimlibs4
+pimlibs_PATH= ${KDE4_PREFIX}/lib/libkpimutils.so.5
-.if defined(WITH_DEBUG)
-CMAKE_BUILD_TYPE= DebugFull
-.endif
+pykde4_PORT= devel/kdebindings4-python-pykde4
+pykde4_PATH= ${KDE4_PREFIX}/lib/kde4/kpythonpluginfactory.so
+pykde4_TYPE= run
-PLIST_SUB+= KDE4_VERSION="${KDE4_VERSION}"
+pykdeuic4_PORT= devel/kdebindings4-python-pykdeuic4
+pykdeuic4_PATH= ${LOCALBASE}/bin/pykdeuic4
+pykdeuic4_TYPE= run
-USE_LDCONFIG= yes
+qtruby_PORT= devel/kdebindings4-ruby-qtruby
+qtruby_PATH= ${KDE4_PREFIX}/lib/libqtruby4shared.so.2
-USE_CMAKE= yes
-CMAKE_SOURCE_PATH= ${WRKSRC}
-CONFIGURE_WRKSRC= ${CMAKE_SOURCE_PATH}/build
-BUILD_WRKSRC= ${CONFIGURE_WRKSRC}
-INSTALL_WRKSRC?= ${BUILD_WRKSRC}
+runtime_PORT= x11/kde4-runtime
+runtime_PATH= ${KDE4_PREFIX}/bin/knotify4
-post-extract: kde-create-builddir
+sharedmime_PORT= misc/kde4-shared-mime-info
+sharedmime_PATH= kde4-shared-mime-info>=0
-kde-create-builddir:
- ${MKDIR} ${BUILD_WRKSRC}
+smokegen_PORT= devel/kdebindings4-smoke-smokegen
+smokegen_PATH= ${KDE4_PREFIX}/lib/libsmokebase.so.3
-.endif # KDE4_BUILDENV
+smokekde_PORT= devel/kdebindings4-smoke-smokekde
+smokekde_PATH= ${KDE4_PREFIX}/lib/libsmokekdecore.so.3
-.endif #!defined(_POSTMKINCLUDED) && !defined(Kde_Pre_Include)
+smokeqt_PORT= devel/kdebindings4-smoke-smokeqt
+smokeqt_PATH= ${KDE4_PREFIX}/lib/libsmokeqtcore.so.3
-.if defined(_POSTMKINCLUDED) && !defined(Kde_Post_Include)
+workspace_PORT= x11/kde4-workspace
+workspace_PATH= ${KDE4_PREFIX}/lib/libkworkspace.so.5
-Kde_Post_Include= bsd.kde4.mk
+akonadi_PORT= databases/akonadi
+akonadi_PATH= ${KDE4_PREFIX}/lib/libakonadiprotocolinternals.so.1
+
+attica_PORT= x11-toolkits/attica
+attica_PATH= ${LOCALBASE}/lib/libattica.so.0
+
+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.4
+
+soprano_PORT= textproc/soprano
+soprano_PATH= ${LOCALBASE}/lib/libsoprano.so.4
-.for component in ${USE_KDE4}
-. if ${_USE_KDE4_ALL:M${component}}!=""
-BUILD_DEPENDS+= ${${component}_BUILD_DEPENDS}
-LIB_DEPENDS+= ${${component}_LIB_DEPENDS}
-RUN_DEPENDS+= ${${component}_RUN_DEPENDS}
-. if defined(${component}_PREFIX)
-. if ${.MAKEFLAGS:MPREFIX=*}==""
-PREFIX= ${${component}_PREFIX}
-. if ${KDE4_PREFIX} != ${LOCALBASE}
-NO_MTREE= yes
+strigi_PORT= deskutils/strigi
+strigi_PATH= ${LOCALBASE}/lib/libstreamanalyzer.so.0
+
+# Iterate through components deprived of suffix.
+.for component in ${USE_KDE4:O:u:C/_.+//}
+ # Check that the component is valid.
+. if ${_USE_KDE4_ALL:M${component}} != ""
+ # Skip meta-components (e.g., kdeprefix).
+. if defined(${component}_PORT) && defined(${component}_PATH)
+${component}_DEPENDS= ${${component}_PATH}:${PORTSDIR}/${${component}_PORT}
+ # Check if a dependency type is explicitly requested.
+. if ${USE_KDE4:M${component}_*} != "" && ${USE_KDE4:M${component}} == ""
+${component}_TYPE= # empty
+. if ${USE_KDE4:M${component}_build} != ""
+${component}_TYPE+= build
+. endif
+. if ${USE_KDE4:M${component}_run} != ""
+${component}_TYPE+= run
. endif
+. endif # ${USE_KDE4:M${component}_*} != "" && ${USE_KDE4:M${component}} == ""
+ # If no dependency type is set, default to full dependency.
+. if !defined(${component}_TYPE)
+${component}_TYPE= build run
. endif
-. endif
-. else
-IGNORE= cannot install: Unknown component ${component}
-. 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_KDE4_ALL:M${component}} != ""
+IGNORE= can't be installed: unknown USE_KDE4 component '${component}'
+. endif # ${_USE_KDE4_ALL:M${component}} != ""
.endfor
-.endif #defined(_POSTMKINCLUDED) && !defined(Kde_Post_Include)
+.endif # defined(_POSTMKINCLUDED) && !defined(Kde_Post_Include)
OpenPOWER on IntegriCloud