Title Description
KDE SuperBuild Automates building separate (KDE) repositories in one go using plain CMake, similar to kdesrc-build. The Superbuild CMakeLists.txt use features of recent CMake versions, so at least CMake 2.8.4 is required. Each Superbuild consists entirely of subprojects (integrated via ExternalProject.cmake), that's why it is called a Superbuild. During a Superbuild, the subprojects are downloaded from git (or svn, cvs, http, etc.), configured, built and installed. h2. Selecting what you want h3. Selecting the tag or branch For selecting a specific tag from git, edit the SB_GIT_TAG cmake cache variable. If you want to check out some subprojects in the superbuild with a different tag (e.g. "4.7" instead of "KDE/4.7"), for each subproject an individual tag can be used by setting a SB_GIT_TAG_<ProjectName> variable to the tag name. E.g. SB_GIT_TAG_KFoo would be the override for the project "KFoo". h3. Selecting the subprojects For each subproject there is a cmake option BUILD_<project>, which decides whether the respective project will part of the superbuild or not. This applies not only to the actual building, but also e.g. for creating source packages (see below). When a subproject is disabled, which another subproject depends on, a warning will be printed during the cmake run. If you do this, the depending subproject will try to find this dependency somewhere in the system, which may also be ok. If you want to select exactly the subprojects you need for one application, disable all subprojects except that one application in cmake-gui, click Configure, and check for the warnings. For each of these warnings enable the respective subproject, the Configure again. Repeat this until there are no warnings left. Now you should have the minimal selection of subprojects required. h2. Building One special note: the subprojects will be installed during the build. So you need to have write permissions to the install directory while building. Short version: * run cmake on the Superbuild CMakeLists.txt * select what you want (see above) * set the CMAKE_INSTALL_PREFIX * optionally, set LIB_SUFFIX, CMAKE_BUILD_TYPE * run make Dependencies between subprojects are also handled, so you can also directly "make Foo", and the subprojects Foo depends on will be built and installed first. IF you need to specify additional arguments for cmake for all subprojects, you can set the variable SB_CMAKE_ARGS to this value, e.g. "-DFOO=foo -DBAR=Blub". This will be used as argument to cmake for all subprojects. If you need specific cmake arguments for some subprojects, you can for each subproject set a variable SB_CMAKE_ARGS_<ProjectName>, which will be used only for the specific project. h3. DESTDIR handling Setting DESTDIR is supported, but with some special conditions: * if DESTDIR is set, CMAKE_SKIP_RPATH must be set to TRUE, because otherwise the resulting binaries will have RPATHs pointing into the DESTDIR locations * DESTDIR must not be changed for a buildtree, i.e. it must always stay as it was during the initial cmake run * DESTDIR must be an absolute path There are also checks in the cmake files, which complain if DESTDIR is set, but to a relative PATH, and also during build it is checked whether DESTDIR is still the same as it was during the cmake run. So it will not fail silently, but you will notice. h2. Creating source packages This is useful e.g. for packagers who want old-style big KDE module tarballs instead of a gazillion of small separate tarballs. It may be also useful for people who just want to build some part of KDE, and have exactly the sources needed for that in one tarball. Short version: * set the cache variable SB_PACKAGE_VERSION_NUMBER to an appropriate version, e.g. via cmake-gui * select what you want (see above) * make UpdateAll * make package * -> now you have a tar.gz source package which can be unpacked and built anywhere The UpdateAll target does not build anything, it only downloads the sources from git or wherever. It is also possible to create again source packages from those source packages, which may contain just a subset of the subprojects contained in the source package. If you simply want to create individual source packages, this is also possible. By setting SB_ONE_PACKAGE_PER_PROJECT to TRUE, "make package" will create one source package per project. This actually is not a Superbuild anymore, but it may be useful for creating the selection of source packages you want.
KDE Pim Libraries h1. KDE's Personal Information Management Libraries h3. Includes these libraries: * akonadi - A client access library for using the Akonadi PIM data server * kabc - An API for the KDE Addressbook * kalarmcal - An API for KAlarm alarms * kblog - An API for weblogging access * kcalcore - An API for the iCalendar and vCalendar formats * kcalutils - Utility and user interface functions for accessing calendar data using the KCalCore library * kholidays - A library for calendar holidays * kimap - an API for IMAP support * kldap - an API for accessing LDAP * kmbox - A library for accessing mail storages in MBox format * kmime - A library for MIME handling * kontactinterface - The glue for embedding KParts into Kontact * kpimidentities - a library for shared identities between mail applications * kpimtextedit - A library for PIM-specific text editing utilities * kpimutils - A library for general purpose PIM utilities * kresources - The KDE Resource framework * ktnef - An API for the handling of TNEF data * kxmlrpcclient - An XML-RPC client library * mailtransport - An API and support code for managing mail transport * microblog - A library for microblogging * qgpgme - A C++ wrapper for gpgme * syndication - An RSS feed handling library h3. Resources * Techbase project page - http://techbase.kde.org/Projects/PIM * Apidox - http://api.kde.org/4.x-api/kdepimlibs-apidocs
KDE Multimedia KDE Multimedia
KDE Bindings Language bindings to KDE's libraries and the Qt library, and tools to generate them.
KDE Graphics An (optional) super-repository which holds the history of the kdegraphics toplevel files, and can facilitate building/maintaining/developing KDE graphics as a whole. Note: this super-repository does not facilitate checking out (cloning) of the component kdegraphics repositories.
KDE Applications
KDE Accessibility
KDE Games
KDE Admin
KDE Toys
KDE Utils
KDE Network
Plasma Addons All kind of addons to improve your Plasma experience
KDE Pim h1. KDE's Personal Information Management suite h3. Includes the following applications -- and More! * blogio - The KDE blogging client * kaddressbook - Keeps your addresses on file * akregator - Feed reader * kalarm - A personal alarm message, command and email scheduler * kjots - A note taker * kleopatra - KDE Key Manager * kmail - Fully featured Email client * knode - KDE News (Usenet) reader * knotes - Popup notes * kontact - Brings together all the KDE PIM applications under one roof * korganizer - KDE Calendar and scheduling * ktimetracker - time tracker h3. Resources * Techbase project page - http://techbase.kde.org/Projects/PIM * Apidox - http://api.kde.org/4.x-api/kdepim-apidocs
KDE Libraries The KDE Library
KDE Runtime Plugins and applications necessary for the running of KDE applications.
KDE Examples A collection of coding examples that provide practical demonstrations of the usage of KDE libraries and app development infrastructure.
KDE Pim Runtime h1. Extends the functionality of kdepim h3. Includes * accountwizard - steps you through account creation for many resources * Akonadi agents - calendarsearch, invitations, maildispatcher, nepomukfeeder and more * Akonadi resources - birthdays, VCard contacts, CalDav, Google, ICal calendars, and many more h3. Resources * Techbase project page - http://techbase.kde.org/Projects/PIM * Apidox - http://api.kde.org/4.x-api/kdepim-runtime-apidocs
KDE Workspace Provides the interface and basic tools for the KDE workspace.