Difference between revisions of "Getting Started/Build"

Jump to: navigation, search
(Configure Example)
(Section clean up.)
(39 intermediate revisions by 12 users not shown)
Line 1: Line 1:
{{warning|This page is yet to be reviewed for changes required by the migration to Git.  Information and commands on this page may no longer be valid and should be used with care. Please see the [[Development/Git|KDE Git hub page]] for more details. }}
+
{{warning|These pages are currently being completely re-written to reflect the new KDE infrastructure and may not be in a consistent state.  Information and commands on some page may no longer be valid and should be used with care.}}
 +
 
  
{{Template:I18n/Language Navigation Bar|Getting Started/Build}}
 
Here you will find instructions for compiling and installing KDE from source and suggestions for when compilation doesn't go so smoothly.
 
  
 
== Introduction ==
 
== Introduction ==
  
== Extra Information ==
+
This page provides an overview of the KDE build process.  Once you complete the steps described here you will have a complete KDE development system customized to your needs.
  
The build process described in these pages is kept as simple and generic as possible, but it is generally assumed you are building KDE4 on Linux.  Extra information about building KDE under specific distributions, platforms or conditions can be found at the following links:
+
== Build Steps ==
  
* [[/Historic|Building KDE3 or KDE2]]
+
This section will briefly explain the concepts and steps involved in building software so you are not being asked to blindly follow some recipes you do not understand.
* [[/Distributions|Linux, BSD and other *nix based distributions]]
+
* [[/Windows|Microsoft Windows]]
+
* [[/Mac_OS_X|Apple Mac OS X]]
+
* [[/KDE4/on_virtual_machines|On a Virtual Machine]].
+
 
+
== Build Basics ==
+
This section will briefly explain the steps involved in building software so you understand the concepts so you are not being asked to blindly follow some recipes you do not understand.
+
  
 
It is assumed you are at least familiar with the basics of using the command line.
 
It is assumed you are at least familiar with the basics of using the command line.
  
=== Checkout ===
+
Once you have read the summary you can see a [[/Example|working example here]].
The checkout step is obtaining a local copy of the source code that you want to build.  While you can download tarball snapshots of the code as at a given time or release to build, it is more common for doing development work to check a copy of the code out directly from the code repository.
+
 
 +
=== Source ===
 +
 
 +
The ''Source'' step is obtaining a local copy of the source code that you want to build.  For a detailed explanation of where to obtain the source code and how KDE stores and organizes our source code please read the [[Getting_Started/Sources|KDE Sources section]].
 +
 
 +
The two main options here are to either download a snapshot tarball of the code, or to directly access the source code repository.  For developing on the unstable branch of the KDE SC it is recommended you directly access the required repositories.
  
 
=== Configure ===
 
=== Configure ===
 +
 +
The ''Configure'' step is setting up how the source code is to be built and installed.
  
 
=== Build ===
 
=== Build ===
 +
 +
The ''Build'' step is compiling the source code and linking it to other libraries to create the new executables and libraries.
  
 
=== Install ===
 
=== Install ===
  
=== Example Recipe ===
+
The ''Install'' step is copy the new executables and libraries somewhere that they can be found and run from.
The following example recipe shows the sequence of commands you would need to enter into the command line to build a typical KDE module:
+
  
cd ~/kde-devel/src
+
=== Update ===
git clone http://anongit.kde.org/kdelibs.git
+
mkdir ~/kde-devel/build/kdelibs
+
cd ~/kde-devel/build/kdelibs
+
cmake ~/kde-devel/src/kdelibs \
+
      -DCMAKE_BUILD_TYPE=debugfull \
+
      -DCMAKE_INSTALL_PREFIX=$KDEDIR
+
make
+
make install
+
  
Let's break that recipe down and explain each step.
+
The ''Update'' step is updating an existing build to use the latest version of the source code and then re-building and re-installing it.
  
==== Checkout Example ====
+
== Scripted Builds ==
  
First you navigate to a convenient folder to save the code in:
+
The easiest way to build the KDE SC from scratch is to use one of the build scripts that are available. This approach is highly recommended for those new to building KDE SC as it takes care of the Source, Configure, Build, Install and Update steps for you.  The builds remain compatible with the manual methods of building KDE SC so you can change later if you want.
  cd ~/kde-devel/src
+
  
Then request a copy of the code from the KDE source repository, in this example a copy of kdelibs from Git:
+
Even KDE Core Developers use build scripts like these as opposed to doing everything manually, as there's just no point otherwise.
git clone http://anongit.kde.org/kdelibs.git
+
  
This may take some time to process.  For Git you will see out output similar to:
+
If you run into any issues, be sure to ask either on the kde-devel mailing list, or the #kde-devel IRC channel (which many developers reside in and are willing to ask any questions or address any problems encountered).
myuser@mybox:~/kde-devel/src> git clone http://anongit.kde.org/kdelibs.git
+
http://anongit.kde.org/kdelibs.git
+
Initialized empty Git repository in /home/myuser/kde-devel/src/kdelibs/.git/
+
remote: Counting objects: 722134, done.
+
remote: Compressing objects: 100% (138759/138759), done.
+
remote: Total 722134 (delta 586243), reused 715797 (delta 580373)
+
Receiving objects: 100% (722134/722134), 140.90 MiB | 706 KiB/s, done.
+
Resolving deltas: 100% (586243/586243), done.
+
myuser@mybox:~/kde-devel/src>
+
  
This example will create a folder called ~/kde-devel/src/kdelibs containing all the kdelibs source code and all its history since KDE began.
+
=== kdesrc-build ===
 +
[[/kdesrc-build|kdesrc-build]] (formerly kdesvn-build) is a tool to allow users and developers to easily download and build the latest versions of the KDE Software Compilation (KDE SC) from the KDE source code repositories.  
  
For an SVN checkout you will instead see output similar to:
+
=== build-tool ===
myuser@mybox:~/kde-devel/src> svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdesdk
+
The [http://michael-jansen.biz/build-tool build-tool] is a ruby program script which is meant not for just building KDE, but also can easily be expanded to compile any other applications. It also has some neat features like progress bars and eta for compile time. It can also automatically generate a ~/.xsessionrc which can be used by KDM when you select to boot into a "Custom" session type. That will enable you to easily get into a KDE session which was built from source, without even having to modify any of your scripts like ~/.bashrc, ~/.zshrc, etc.
A    kdesdk/cmake
+
A    kdesdk/cmake/samples
+
A    kdesdk/cmake/samples/kpager
+
A    kdesdk/cmake/samples/kpager/CMakeLists.txt
+
...
+
A    kdesdk/COPYING.LIB
+
U  kdesdk
+
Checked out revision 1223739.
+
myuser@mybox:~/kde-devel/src>
+
  
==== Configure Example ====
+
Install rubygems through your package manager. Run <tt>sudo gem install build-tool</tt>. Now that build-tool is installed, we need to install the KDE recipes to have it build KDE from source. Run <tt>build-tool recipe add git://gitorious.org/build-tool/kde-trunk-recipe.git kde</tt> to add the KDE recipe to the program. Then <tt>build-tool recipes install kde</tt>. From there, you can run <tt>kde-build help</tt> to see the commands available for the KDE recipe, as well as compile and update the git repositories.
First you create a convenient folder to build the code in:
+
mkdir ~/kde-devel/build/kdelibs
+
cd ~/kde-devel/build/kdelibs
+
  
Next you need to run CMake to create the configuration files to be used in the build:
+
For more detailed information, visit: http://michael-jansen.biz/build-tool
cmake ~/kde-devel/src/kdelibs \
+
      -DCMAKE_BUILD_TYPE=debugfull \
+
      -DKDE4_BUILD_TESTS=TRUE \
+
      -DCMAKE_INSTALL_PREFIX=$KDEDIR
+
  
Various options can be passed to CMake to control how a project gets built, but these are the most common:
+
== Platform Specific Information ==
* The first line tells CMake where it can find the source code that is to be built.
+
* The second line tells CMake what type of build is required, in this example a debugfull build that will include useful information for when we are debugging any the software.
+
* The third line tells CMake we also want the unit tests to be built.
+
* The fourth line tells CMake where to install the software.
+
  
==== Build Example ====
+
The build process described in these pages is kept as simple and generic as possible, but it is generally assumed you are building KDE4 on Linux.  Extra information about building KDE Software on specific distributions or platforms, or under certain conditions can be found at the following links:
  
== Scripted Builds ==
+
* [[/Distributions|Linux, BSD and other *nix based distributions]]
The easiest way to build the KDE SC from scratch is to use one of the build scripts that are available.  This approach is highly recommended for those new to building KDE SC as it takes care of the Checkout, Configure, Build, Install and Update steps for you. The builds remain compatible with the manual methods of building KDE SC so you can change later if you want.
+
* [[/Windows|Microsoft Windows]]
 +
* [[/Mac_OS_X|Apple Mac OS X]]
 +
* [[/KDE4/on_virtual_machines|On a Virtual Machine]].
 +
* [[/Historic|Building historic versions of KDE Software (KDE3 and KDE2)]]
  
* The [[/kdesrc-build|kdesrc-bld]] script by Michael Pyne
+
== Stable versus Unstable ==
* The [http://michael-jansen.biz/build-tool build-tool] script by Michael Jansen
+
  
== Getting Ready ==
+
A stable build is a released and supported version of KDE Software, such as KDE SC 4.6.  This software is guaranteed to remain unchanged other than bug-fixes.  You will want a Stable build if you want to use the KDE Software for normal use or to develop bug fixes.
Manually building KDE Software requires that you first set up the build environment and install the required development tools and libraries.
+
  
 +
An unstable build is the latest development version of KDE Software and is not guaranteed to build or run properly at any given time.  You will want an Unstable build if you want to develop new features for KDE Software.
 +
 +
In Git, the Unstable branch is called Master while in Subversion it is called Trunk.
 +
 +
== Build and Install ==
 +
 +
You need to complete each of the following steps to build and/or install a working KDE development system. Manually building KDE Software requires that you first set up the build environment and install the required development tools and libraries.
 +
 +
* Choose the appropriate [[/Methods|Build Method]] for your requirements
 
* Set up your [[/Environment|Build Environment]]
 
* Set up your [[/Environment|Build Environment]]
 +
* Choose the appropriate [[/Recipes|Build Recipes]] for your requirements and environment
 
* Install the [[/Requirements|Build Requirements]]
 
* Install the [[/Requirements|Build Requirements]]
 
* Install or build [[/Qt|Qt]]
 
* Install or build [[/Qt|Qt]]
* Install or build [[/KdeSupport|kdesupport]]
+
* Install or build [[/KDE_Support|KDE Support]]
 
+
* Install or build [[/KDE_Development_Platform|KDE Development Platform]]
== Building From Source ==
+
* Install or build [[/KDE_Workspace|KDE Workspace]]
 
+
* [[/KDE_Applications|Build KDE Applications]]
* [[Getting_Started/Build/KDE4|Download and Build KDE SC from Git]]
+
* [[Getting_Started/Build/KDE4.x|Build a stable 4.x release]]
+
  
 
== Troubleshooting The Build ==
 
== Troubleshooting The Build ==
 +
 
Compile and Linking errors are frequent sources of discouragement. Make careful note of the first occurrence of an error in your build process. It could be as simple as a bad environment variable, an unexpected version of a library or missing prerequisite.  Please read the instructions carefully.
 
Compile and Linking errors are frequent sources of discouragement. Make careful note of the first occurrence of an error in your build process. It could be as simple as a bad environment variable, an unexpected version of a library or missing prerequisite.  Please read the instructions carefully.
  
 
Please review your logs and do searches for fixes. If you cannot find a solution, try the [[/Troubleshooting|Troubleshooting]] page.  If you still cannot resolve the problem then please [[Development/Getting_Help|ask for help]] on IRC or a Mailing List.
 
Please review your logs and do searches for fixes. If you cannot find a solution, try the [[/Troubleshooting|Troubleshooting]] page.  If you still cannot resolve the problem then please [[Development/Getting_Help|ask for help]] on IRC or a Mailing List.
 +
 +
== Starting KDE ==
 +
 +
Having built and installed KDE, you will probably want to start it. Launching a full session requires some preparations, depending on whether you want to run the self-compiled KDE within another desktop environment or as a full-blow session:
 +
 +
* [[Getting_Started/Run/Nested_Session|How to Run a nested session of KDE]]
 +
* [[Getting_Started/Run/Full_Session|How to Run a full session of KDE]]
  
 
[[Category:Build KDE]]
 
[[Category:Build KDE]]

Revision as of 05:58, 23 December 2012

noframe
 
Warning
These pages are currently being completely re-written to reflect the new KDE infrastructure and may not be in a consistent state. Information and commands on some page may no longer be valid and should be used with care.



Contents

Introduction

This page provides an overview of the KDE build process. Once you complete the steps described here you will have a complete KDE development system customized to your needs.

Build Steps

This section will briefly explain the concepts and steps involved in building software so you are not being asked to blindly follow some recipes you do not understand.

It is assumed you are at least familiar with the basics of using the command line.

Once you have read the summary you can see a working example here.

Source

The Source step is obtaining a local copy of the source code that you want to build. For a detailed explanation of where to obtain the source code and how KDE stores and organizes our source code please read the KDE Sources section.

The two main options here are to either download a snapshot tarball of the code, or to directly access the source code repository. For developing on the unstable branch of the KDE SC it is recommended you directly access the required repositories.

Configure

The Configure step is setting up how the source code is to be built and installed.

Build

The Build step is compiling the source code and linking it to other libraries to create the new executables and libraries.

Install

The Install step is copy the new executables and libraries somewhere that they can be found and run from.

Update

The Update step is updating an existing build to use the latest version of the source code and then re-building and re-installing it.

Scripted Builds

The easiest way to build the KDE SC from scratch is to use one of the build scripts that are available. This approach is highly recommended for those new to building KDE SC as it takes care of the Source, Configure, Build, Install and Update steps for you. The builds remain compatible with the manual methods of building KDE SC so you can change later if you want.

Even KDE Core Developers use build scripts like these as opposed to doing everything manually, as there's just no point otherwise.

If you run into any issues, be sure to ask either on the kde-devel mailing list, or the #kde-devel IRC channel (which many developers reside in and are willing to ask any questions or address any problems encountered).

kdesrc-build

kdesrc-build (formerly kdesvn-build) is a tool to allow users and developers to easily download and build the latest versions of the KDE Software Compilation (KDE SC) from the KDE source code repositories.

build-tool

The build-tool is a ruby program script which is meant not for just building KDE, but also can easily be expanded to compile any other applications. It also has some neat features like progress bars and eta for compile time. It can also automatically generate a ~/.xsessionrc which can be used by KDM when you select to boot into a "Custom" session type. That will enable you to easily get into a KDE session which was built from source, without even having to modify any of your scripts like ~/.bashrc, ~/.zshrc, etc.

Install rubygems through your package manager. Run sudo gem install build-tool. Now that build-tool is installed, we need to install the KDE recipes to have it build KDE from source. Run build-tool recipe add git://gitorious.org/build-tool/kde-trunk-recipe.git kde to add the KDE recipe to the program. Then build-tool recipes install kde. From there, you can run kde-build help to see the commands available for the KDE recipe, as well as compile and update the git repositories.

For more detailed information, visit: http://michael-jansen.biz/build-tool

Platform Specific Information

The build process described in these pages is kept as simple and generic as possible, but it is generally assumed you are building KDE4 on Linux. Extra information about building KDE Software on specific distributions or platforms, or under certain conditions can be found at the following links:

Stable versus Unstable

A stable build is a released and supported version of KDE Software, such as KDE SC 4.6. This software is guaranteed to remain unchanged other than bug-fixes. You will want a Stable build if you want to use the KDE Software for normal use or to develop bug fixes.

An unstable build is the latest development version of KDE Software and is not guaranteed to build or run properly at any given time. You will want an Unstable build if you want to develop new features for KDE Software.

In Git, the Unstable branch is called Master while in Subversion it is called Trunk.

Build and Install

You need to complete each of the following steps to build and/or install a working KDE development system. Manually building KDE Software requires that you first set up the build environment and install the required development tools and libraries.

Troubleshooting The Build

Compile and Linking errors are frequent sources of discouragement. Make careful note of the first occurrence of an error in your build process. It could be as simple as a bad environment variable, an unexpected version of a library or missing prerequisite. Please read the instructions carefully.

Please review your logs and do searches for fixes. If you cannot find a solution, try the Troubleshooting page. If you still cannot resolve the problem then please ask for help on IRC or a Mailing List.

Starting KDE

Having built and installed KDE, you will probably want to start it. Launching a full session requires some preparations, depending on whether you want to run the self-compiled KDE within another desktop environment or as a full-blow session:


KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V.Legal