|
|
(37 intermediate revisions by 9 users not shown) |
Line 1: |
Line 1: |
− | These instructions are for Unix and similar operating systems.<br>
| + | #REDIRECT [[Calligra/Building/3]] |
− | For Windows, see the [[Calligra/Building_Calligra_on_Windows|building
| |
− | Calligra on Windows]] page.<br>
| |
− | For OSX, see the [[Calligra/Building_Calligra_on_OSX|building Calligra
| |
− | on OSX]] page.
| |
− | | |
− | = Preparation =
| |
− | {{Warning|First, to avoid conflicting copies of software, '''make sure
| |
− | you do not have other copy of Calligra or KOffice''' either installed
| |
− | through the package manager of your distribution or installed in any
| |
− | other way. Calligra and KOffice are mutually exclusive!}}
| |
− | | |
− | {{Warning|Follow this guide as an ordinary user. Do not login as
| |
− | '''root'''!}}
| |
− | | |
− | {{Warning|Some distributions (*Buntu, Arch) are now making Qt5 the
| |
− | defaulft! That does not work. Do not try to use Qt5, use Qt4.}}
| |
− | | |
− | == Recommended Setup ==
| |
− | Here is recommendation of a directory structure:
| |
− | ;$HOME/kde4/src/:source code
| |
− | ;$HOME/kde4/build/calligra:directory that Calligra will be built in
| |
− | ;$HOME/kde4/inst:directory that Calligra will be installed in
| |
− | | |
− | The ''build'' directory is needed because you cannot (or should not)
| |
− | build Calligra inside the source directory; the source and build
| |
− | directory have to be separated.
| |
− | | |
− | Create these directories with:
| |
− | | |
− | mkdir -p ~/kde4/src; mkdir -p ~/kde4/build; mkdir -p ~/kde4/inst
| |
− | | |
− | '''Advantages of this setup:'''
| |
− | *It is possible to have different builds (e.g. with different options
| |
− | out of the same source code)
| |
− | *[http://techbase.kde.org/Getting_Started/Increased_Productivity_in_KDE4_with_Scripts
| |
− | | |
− | David Faure's scripts] can be used to make development easier. With
| |
− | those scripts "make" can be typed in the source directory and building
| |
− | will happen in the right (build) directory automatically.
| |
− | | |
− | Also, check the [http://techbase.kde.org/Getting_Started/Build Techbase
| |
− | instructions on setting up a build environment]. That contains some
| |
− | useful scripts and functions.
| |
− | | |
− | == Getting the Source Code ==
| |
− | There are two most useful options:
| |
− | #'''Get the source code for the latest stable version.'''
| |
− | #'''Get the source code for the current development version.''' Needed
| |
− | to test, check and give feedback about features that is in development
| |
− | and have not been released yet.
| |
− | | |
− | If unsure pick the stable version.
| |
− | | |
− | === Latest Stable Version ===
| |
− | | |
− | The latest stable Calligra version is '''{{Calligra/Stable}}'''.
| |
− | | |
− | *'''Option 1: It can be downloaded as a single archive file''' from
| |
− | http://download.kde.org/stable/calligra-{{Calligra/Stable}}/calligra-{{Calligra/Stable}}.tar.xz.
| |
− | | |
− | Right now it weights about 114 MiB. The source code has to be
| |
− | uncompressed using:
| |
− | | |
− | | |
− | tar xJf calligra-{{Calligra/Stable}}.tar.xz
| |
− | | |
− | :Then ''calligra-{{Calligra/Stable}}'' will appear. You '''do not'''
| |
− | need to execute initrepo.sh in it, the code is ready to build. Please
| |
− | note there is a price for smaller download: to update the source code to
| |
− | a newer version, another .tar.xz should be downloaded. See the option 2
| |
− | to see how to address this with one-time bigger updatable download.
| |
− | | |
− | :When the source code is properly downloaded, the next step is to ensure
| |
− | that [[#Build_Requirements|build requirements]] are met and to
| |
− | [[#Build_Calligra|build Calligra]].
| |
− | | |
− | *'''Option 2: Alternative download from the git repository''', what
| |
− | weights about 650MB. If you prefer, stable versions are also available
| |
− | on the git repository too. It is heavier but one-time download, the
| |
− | advantage is that lightweight updates can be obtained without a need for
| |
− | downloading entire source code again.
| |
− | | |
− | :To get stable version x.y (currently {{Calligra/Stable}}) from git,
| |
− | first follow instructions for downloading [[#Development Version|the
| |
− | development version]] below, either the Option #1 (directly from git) or
| |
− | the Option #2 (download a repository tarball). Then you need to switch
| |
− | from the development version to stable version of the source code. To do
| |
− | so, in the main Calligra source code directory that has been
| |
− | downloaded, type:
| |
− | | |
− | git checkout calligra/{{Calligra/StableBranch}}
| |
− | | |
− | :''calligra/x.y'' is a notation for branches in the Calligra project.
| |
− | For the latest stable version {{Calligra/Stable}} the branch is called
| |
− | calligra/{{Calligra/StableBranch}} and contains code updates for current
| |
− | minor stable release '''{{Calligra/Stable}}''' plus updates for the
| |
− | next minor planned stable update (if there is any
| |
− | [[Schedules|planned]]).
| |
− | | |
− | :When the source code is properly downloaded, the next step is to ensure
| |
− | that [[#Build_Requirements|build requirements]] are met and to
| |
− | [[#Build_Calligra|build Calligra]].
| |
− | | |
− | === Development Version ===
| |
− | | |
− | The latest development version of Calligra is '''{{Calligra/Unstable}}
| |
− | {{Calligra/Stage}}'''; developers always refer to it as to '''master'''.
| |
− | Applications from ''Master'' should always compile and be reasonably
| |
− | stable. Calligra developers never place experimental features there.
| |
− | Once tested and released, ''Master'' becomes the new current stable
| |
− | version {{Calligra/UnstableBranch}}.
| |
− | | |
− | ''TODO: Here we should explain local branches, staging and
| |
− | always-release-ready Master, if we have that setup.''
| |
− | | |
− | *'''Option 1: directly from git'''
| |
− | | |
− | To retrieve the source code from Git you have to use the following
| |
− | setup:
| |
− | | |
− | Add the following text to your ~/.gitconfig:
| |
− | | |
− | <nowiki>[url "git://anongit.kde.org/"]</nowiki>
| |
− | insteadOf = kde:
| |
− | | |
− | pushInsteadOf = kde:
| |
− | | |
− | Then execute
| |
− | | |
− | $ git clone kde:calligra
| |
− | | |
− | By using the kde: prefix, read access will automatically happen over
| |
− | Git, and authenticated SSH is only required for pushes.
| |
− | | |
− | Note that pushing your changes will only work if you have a KDE
| |
− | developer identity. You can get a contributor account as explained on
| |
− | [http://techbase.kde.org/Contribute/Get_a_Contributor_Account the KDE
| |
− | Techbase].
| |
− | | |
− | The $HOME/kde4/src/calligra directory will be created regardless of the
| |
− | way how the source code has been downloaded.
| |
− | | |
− | *'''Option 2: download a repository tarball'''
| |
− | | |
− | Go to https://projects.kde.org/projects/calligra/repository. Press the
| |
− | "Tarball" button. Copy the url text and paste it on your command line.
| |
− | It will look like:
| |
− | | |
− | wget -c http://anongit.kde.org/calligra/calligra-latest.tar.gz
| |
− | | |
− | Unpack and cd into directory, then run
| |
− | | |
− | $ ./initrepo.sh
| |
− | | |
− | From now on, you can run
| |
− | | |
− | $ git pull
| |
− | | |
− | to update, or if you have local changes:
| |
− | | |
− | $ git rebase origin/master
| |
− | | |
− | | |
− | | |
− | | |
− | *'''Option 3: if beta or rc version was released''', the source code for
| |
− | the latest beta can be found on KDE's ftp
| |
− | [ftp://ftp.kde.org/pub/kde/unstable/calligra-latest/ calligra-latest].
| |
− | Uncompress the code so that $HOME/kde4/src/calligra is created.
| |
− | | |
− | === Working with Multiple Versions ===
| |
− | You will often want to have more than one build environment in parallel,
| |
− | for example if you want to work on both stable and unstable branches at
| |
− | the same time or several ''feature'' branches.
| |
− | | |
− | Recommended way is to use '''git-new-workdir''' tool. The solution is
| |
− | based on a single git repository clone multiplied to many separate
| |
− | source directories for each branch you wish to use, all without
| |
− | performing full clone (what consumes disk space and requires fetching
| |
− | each clone separately). It is explained in the Techbase article
| |
− | [http://techbase.kde.org/Development/Git/Configuration#Multiple_Work_Branches
| |
− | | |
− | Multiple Work Branches] and you can find the script there.
| |
− | | |
− | Example commands to have code for both Calligra
| |
− | ''{{Calligra/UnstableBranch}}.x'' and ''master'' versions:
| |
− | | |
− | To get the ''master'' into <tt>$HOME/kde4/src/calligra</tt>:
| |
− | $ git clone kde:calligra
| |
− | | |
− | Then, to get the Calligra ''{{Calligra/UnstableBranch}}.x'' into
| |
− | <tt>$HOME/kde4/src/calligra-{{Calligra/UnstableBranch}}</tt>:
| |
− | | |
− | | |
− | $ git-new-workdir $HOME/kde4/src/calligra
| |
− | $HOME/kde4/src/calligra-{{Calligra/UnstableBranch}}
| |
− | calligra/{{Calligra/UnstableBranch}}
| |
− | | |
− | (which means ''git-new-workdir <original clone's directory>
| |
− | <new source directory> <branch name>'')
| |
− | | |
− | = Build Requirements =
| |
− | This section provides information about '''hard''' (required) and
| |
− | '''optional''' software packages needed to build the Calligra software.
| |
− | | |
− | == Required Dependencies ==
| |
− | | |
− | {{Note|'''A note for developers:''' to add (or remove) a hard
| |
− | dependency, an explanation of the reason, and possibly a discussion must
| |
− | | |
− | to be packaged in the most widely used distributions (Debian, Fedora
| |
− | Core, OpenSuSE, (K)ubuntu). First try to make your new feature
| |
− | optional.}}
| |
− | | |
− | Following are the general must-have dependencies for Calligra (unless
| |
− | you really need to do otherwise, just install relevant binary packages):
| |
− | * Qt 4.7.0 or newer
| |
− | *kdelibs and kdelibs development files
| |
− | **the minimal requirement is currently 4.3.0, that or any later release
| |
− | packaged in your distribution is OK
| |
− | **On opensuse the development package is called libkde4-devel; on Ubuntu
| |
− | and Debian it is called kdelibs5-dev. (TODO: add info for other
| |
− | distributions)
| |
− | **Calligra should also build fine with either kdelibs from ''git''
| |
− | repository (see [http://techbase.kde.org/Getting_Started/Build/KDE4
| |
− | techbase] for an explanation on how to compile kdelibs from svn), needed
| |
− | for parts of Calligra build with the Mobile Frameworks Profile of the
| |
− | KDE platform (Calligra Words, Calligra Sheets, Calligra Stage, krita)
| |
− | * kdebase/runtime 4.3 or newer
| |
− | * cmake 2.6.2 or newer
| |
− | * lcms 2.4 or newer
| |
− | * libpng development package (libpng14-devel on opensuse, libpng-dev on
| |
− | Ubuntu/Debian)
| |
− | ** development packages for other libraries may be needed; on
| |
− | ubuntu/Debian these can be installed using 'apt-get build-dep kdelibs5'
| |
− | | |
− | For Calligra Sheets:
| |
− | * libeigen 3.0
| |
− | | |
− | For Krita:
| |
− | * libeigen 3.0
| |
− | * libexiv2 >= 0.16
| |
− | | |
− | For Stage:
| |
− | * boost
| |
− | | |
− | For Kexi:
| |
− | * sqlite3 and sqlite3-devel packages (package names can differ on
| |
− | various distributions), version >= 3.7.10
| |
− | * icu, libicu and libicu-devel (unicode support)
| |
− | | |
− | == Optional Dependencies ==
| |
− | | |
− | All optional dependencies are logged at the end of the cmake run, so it
| |
− | is easy to figure out what is missing. The buildsystem also reports what
| |
− | component will not be built because given missing dependency.
| |
− | | |
− | For users who want to use Krita it is also recommended to install the
| |
− | [http://code.compeng.uni-frankfurt.de/projects/vc Vc library]. It is
| |
− | optional, but makes the performance much higher.
| |
− | | |
− | == Distribution Specific Instructions ==
| |
− | | |
− | === Debian-based Distributions ===
| |
− | On '''Debian''', '''Ubuntu''' and '''Kubuntu''', all the dependencies
| |
− | used for the packages can be installed by running :
| |
− | <pre style="white-space:-moz-pre-wrap; white-space:-pre-wrap;
| |
− | white-space:-o-pre-wrap; white-space:pre-wrap;
| |
− | word-wrap:break-word">sudo apt-get build-dep calligra</pre>
| |
− | Note you'll need to activate 'software sources' in your repositories.
| |
− | | |
− | Additionnal more or less mandatory librairies for Ubuntu and derivatives
| |
− | :
| |
− | <pre style="white-space:-moz-pre-wrap; white-space:-pre-wrap;
| |
− | white-space:-o-pre-wrap; white-space:pre-wrap;
| |
− | word-wrap:break-word">sudo apt-get install libeigen3-dev libxi-dev
| |
− | phonon-backend-gstreamer kdelibs5-dev libboost-dev exiv2</pre>
| |
− | | |
− | For a better appearance on non-KDE desktop environment :
| |
− | <pre style="white-space:-moz-pre-wrap; white-space:-pre-wrap;
| |
− | white-space:-o-pre-wrap; white-space:pre-wrap;
| |
− | word-wrap:break-word">sudo apt-get install
| |
− | kde-style-oxygen</pre>
| |
− | | |
− | On '''Linux Mint''' , you'll need to activate the software sources
| |
− | repositories manually. ( Search for 'Software Sources' in your menu then
| |
− | open it, On the tab 'Linux Mint Software' , check to activate 'Source
| |
− | code', On the tab 'Other Software' check to activate 'Ubuntu **.**
| |
− | <name> (source code) then close the windows to finish )''
| |
− | | |
− | === OpenSuSE ===
| |
− | All the dependencies used for building Calligra can be installed by
| |
− | running:
| |
− | | |
− | zypper si -d calligra
| |
− | | |
− | ''( Note : enable in 'Yast' > 'Software Repository' the sources
| |
− | packages )''
| |
− | | |
− | === Fedora ===
| |
− | All the dependencies used for building Calligra can be installed by
| |
− | running:
| |
− | yum-builddep calligra
| |
− | | |
− | === Arch Linux & Manjaro ===
| |
− | All the dependencies used for building Calligra can be installed by
| |
− | running:
| |
− | | |
− | <pre style="white-space:-moz-pre-wrap; white-space:-pre-wrap;
| |
− | white-space:-o-pre-wrap; white-space:pre-wrap;
| |
− | word-wrap:break-word">sudo pacman -Sy automoc4 git cmake make
| |
− | kdepimlibs eigen freetds kdegraphics-okular libgsf libwpd libwpg libwps
| |
− | pstoedit glew gsl cmake automoc4 boost libkdcraw libpqxx fftw lcms2
| |
− | vc</pre>
| |
− | | |
− | ''( Note : Manual installation of some packages may be needed, since the
| |
− | package manager (pacman) may miss certain packages during installation.
| |
− | Use pacman -S <package_name> to install missing package.)''
| |
− | | |
− | === Chakra ===
| |
− | All the dependencies used for building Calligra can be installed by
| |
− | running:
| |
− | | |
− | <pre style="white-space:-moz-pre-wrap; white-space:-pre-wrap;
| |
− | white-space:-o-pre-wrap; white-space:pre-wrap;
| |
− | word-wrap:break-word">sudo pacman -S kdelibs kdepimlibs eigen freetds
| |
− | kdegraphics-okular kdeedu-marble xbase libgsf libwpd libwpg libwps
| |
− | libvisio pstoedit glew gsl cmake automoc4 libspnav libqtgtl boost
| |
− | libkdcraw libpqxx fftw opengtl docbook-xsl create-resources lcms2
| |
− | qrencode libdmtx</pre>
| |
− | | |
− | ===Mageia ===
| |
− | (Mageia 5 alpha 1/Cauldron recommended for current git master version)<br>
| |
− | All the dependencies used for building Calligra can be installed by running as root:
| |
− | | |
− | <pre style="white-space:-moz-pre-wrap; white-space:-pre-wrap; white-space:-o-pre-wrap; white-space:pre-wrap;
| |
− | word-wrap:break-word">urpmi task-c++-devel git li64boost-static-devel && urpmi --buildrequires http://mirror.internode.on.net/pub/mageia/distrib/cauldron/SRPMS/core/release/calligra-2.8.5-1.mga5.src.rpm </pre>
| |
− | | |
− | {{Note| change the link to the src.rpm file to actual up-to-date location.}}
| |
− | {{Note2| Dependency list tested for Krita+Karbon, only librevenge is missing required library. We probably need to add some more dependencies for other calligra applications.}}
| |
− | | |
− | = Build Calligra =
| |
− | {{Note|It is '''not''' possible to build Calligra in the source
| |
− | directory. Set up your directories as described in the
| |
− | [[#Recommended_setup|Recommended setup]] section above}}
| |
− | | |
− | Type:
| |
− | mkdir -p $HOME/kde4/build/calligra
| |
− | mkdir -p $HOME/kde4/inst
| |
− | cd $HOME/kde4/build/calligra
| |
− | | |
− | Then, type this command:
| |
− | | |
− | cmake -DCMAKE_INSTALL_PREFIX=$HOME/kde4/inst $HOME/kde4/src/calligra \
| |
− | -DCMAKE_BUILD_TYPE=RelWithDebInfo
| |
− | | |
− | '''Note:''' if version of your Qt framework if exactly 4.8.0 or 4.8.1
| |
− | add an extra parameter to the above command [[/Qt 4.8.0 and 4.8.1
| |
− | patch/|as explained here]].
| |
− | | |
− | (''cmakekde'' tool can be used as explained on
| |
− | [http://techbase.kde.org/Getting_Started/Build/KDE4 the build
| |
− | instructions for KDE4])
| |
− | | |
− | Then type:
| |
− | make
| |
− | | |
− | Then type this command to install the software:
| |
− | make install
| |
− | | |
− | '''But first read the advice below''' regarding speeding up the build
| |
− | process and adding extra debugging capabilities.
| |
− | | |
− | Please follow the
| |
− | [[Calligra/Building#Running_Calligra_Applications|Running Calligra | |
− | Applications]] instructions before trying to run an application.
| |
− | | |
− | ==Speed up==
| |
− | '''Recommended: Taking advantage of multi-core processors.''' On
| |
− | dual-core machines compilation can be '''greatly speed up''' with the
| |
− | <tt>-j</tt> parameter of the <tt>make</tt>
| |
− | program. For example whenever you are invoking
| |
− | <tt>make</tt>, for dual-core processor try to invoke:
| |
− | make -j3
| |
− | Similarly, for quad-core processor:
| |
− | make -j5
| |
− | | |
− | Generaly for ''N-core'' processor use the <tt>-jN+1</tt>
| |
− | parameter.
| |
− | | |
− | '''Recommended: Faster linking on Linux.'''
| |
− | [http://en.wikipedia.org/wiki/Linker_%28computing%29 Linking] can take
| |
− | noticeable time in large software such as Calligra. On Linux
| |
− | [http://en.wikipedia.org/wiki/Gold_%28linker%29 Gold linker] can be used
| |
− | to speed up this task. If you're building for Linux, install the Gold
| |
− | linker package and add the following to your <tt>cmake</tt>
| |
− | command:
| |
− | -DCMAKE_C_FLAGS=-fuse-linker-plugin
| |
− | -DCMAKE_CXX_FLAGS=-fuse-linker-plugin
| |
− | | |
− | (you can set the <tt>CMAKE_C_FLAGS</tt> adn
| |
− | <tt>CMAKE_CXX_FLAGS</tt> variables in your {build
| |
− | dir}/CMakeCache.txt file either using text editor or the
| |
− | <tt>ccmake</tt> tool)
| |
− | | |
− | ==Debugging options==
| |
− | '''Recommended for accurate debugging:''' The default debug setting is
| |
− | <tt>RelWithDebInfo</tt> which is suitable only for obtaining
| |
− | backtraces. If you are developing or debugging an application by
| |
− | setting breakpoints, watchpoints, using step by step command accurately
| |
− | in your debugger, if you rely on assertions, debug and warning messages,
| |
− | you can replace <tt>-DCMAKE_BUILD_TYPE=RelWithDebInfo</tt>
| |
− | with:
| |
− | -DCMAKE_BUILD_TYPE=DebugFull
| |
− | | |
− | Using <tt>DebugFull</tt> results in a slower code. That can
| |
− | be acceptable in most cases during testing and development given the
| |
− | machine is fast enough. It is not intended for production releases of
| |
− | the software unless you know what you're doing.
| |
− | | |
− | '''Special case for Krita:''' If you are working on Krita, always use
| |
− | the <tt>KritaDevs</tt> option by setting:
| |
− | -DCMAKE_BUILD_TYPE=KritaDevs
| |
− | | |
− | = Updating and Rebuilding =
| |
− | If the source code has been cloned using Git, it is possible to update
| |
− | the source code with newly added changes and build again. Usually only
| |
− | changing parts will be built, so this operation would be faster than
| |
− | building the source code from scratch.
| |
− | | |
− | Type:
| |
− | cd $HOME/kde4/src/calligra
| |
− | git pull --rebase
| |
− | cd $HOME/kde4/build/calligra
| |
− | make
| |
− | make install
| |
− | | |
− | (note that you can always append the <tt>-jN</tt> option to
| |
− | the <tt>make</tt> command to speed up the build as explained
| |
− | earlier in the [[#Speed_up|Speed up]] section.
| |
− | | |
− | = Building Selected Applications =
| |
− | == Using Product Sets ==
| |
− | By default, the build system tries to build all applications. The
| |
− | recommended way to change this is to specify a different product set by
| |
− | setting the <tt>PRODUCTSET</tt> CMake variable. The
| |
− | following table illustrates the predefined product sets.
| |
− | | |
− | {| class="wikitable" style="margin: 1em auto; text-align: center;"
| |
− | ! rowspan="2" width="100"| Application
| |
− | ! colspan="5" | Product Set
| |
− | |-
| |
− | !width="100"| DESKTOP
| |
− | !width="100"| CREATIVE
| |
− | !width="100"| ACTIVE
| |
− | !width="100"| OSX
| |
− | !width="100"| ALL
| |
− | |-
| |
− | !style="text-align: right; padding: 0.5em;"| Active
| |
− | |
| |
− | |
| |
− | | X
| |
− | |
| |
− | | X
| |
− | |-
| |
− | !style="text-align: right; padding: 0.5em;"| Author
| |
− | | X
| |
− | |
| |
− | |
| |
− | | X
| |
− | | X
| |
− | |-
| |
− | !style="text-align: right; padding: 0.5em;"| Braindump
| |
− | | X
| |
− | |
| |
− | |
| |
− | | X
| |
− | | X
| |
− | |-
| |
− | !style="text-align: right; padding: 0.5em;"| Flow
| |
− | | X
| |
− | |
| |
− | |
| |
− | | X
| |
− | | X
| |
− | |-
| |
− | !style="text-align: right; padding: 0.5em;"| Karbon
| |
− | | X
| |
− | | X
| |
− | |
| |
− | | X
| |
− | | X
| |
− | |-
| |
− | !style="text-align: right; padding: 0.5em;"| Kexi
| |
− | | X
| |
− | |
| |
− | |
| |
− | |
| |
− | | X
| |
− | |-
| |
− | !style="text-align: right; padding: 0.5em;"| Krita
| |
− | | X
| |
− | | X
| |
− | |
| |
− | | X
| |
− | | X
| |
− | |-
| |
− | !style="text-align: right; padding: 0.5em;"| Plan
| |
− | | X
| |
− | |
| |
− | |
| |
− | |
| |
− | | X
| |
− | |-
| |
− | !style="text-align: right; padding: 0.5em;"| Sheets
| |
− | | X
| |
− | |
| |
− | |
| |
− | | X
| |
− | | X
| |
− | |-
| |
− | !style="text-align: right; padding: 0.5em;"| Stage
| |
− | | X
| |
− | |
| |
− | |
| |
− | | X
| |
− | | X
| |
− | |-
| |
− | !style="text-align: right; padding: 0.5em;"| Words
| |
− | | X
| |
− | |
| |
− | |
| |
− | | X
| |
− | | X
| |
− | |-
| |
− | |}
| |
− | | |
− | For example, to build the <tt>CREATIVE</tt> product set,
| |
− | pass
| |
− | | |
− | -DPRODUCTSET=CREATIVE
| |
− | | |
− | on the CMake command line.
| |
− | | |
− | {{note|The set of included plugins, import/export filters and extra
| |
− | tools may differ between product sets. Consult the product set
| |
− | definitions in the <tt>cmake/productsets</tt> directory of
| |
− | the Calligra sources for detailed information about what is included in
| |
− | each product set.}}
| |
− | | |
− | == Specific Product Sets ==
| |
− | For convenience, specific cases have been covered by extra product sets.
| |
− | | |
− | {| class="wikitable" style="margin: 1em auto; text-align: center;"
| |
− | ! rowspan="2" width="100"| Application
| |
− | ! colspan="5" | Product Set
| |
− | |-
| |
− | !width="100"| KEXI
| |
− | !width="100"| KEXI+SHEETS
| |
− | !width="100"| KRITA
| |
− | !width="100"|
| |
− | !width="100"|
| |
− | |-
| |
− | !style="text-align: right; padding: 0.5em;"| Active
| |
− | |
| |
− | |
| |
− | |
| |
− | |
| |
− | |
| |
− | |-
| |
− | !style="text-align: right; padding: 0.5em;"| Author
| |
− | |
| |
− | |
| |
− | |
| |
− | |
| |
− | |
| |
− | |-
| |
− | !style="text-align: right; padding: 0.5em;"| Braindump
| |
− | |
| |
− | |
| |
− | |
| |
− | |
| |
− | |
| |
− | |-
| |
− | !style="text-align: right; padding: 0.5em;"| Flow
| |
− | |
| |
− | |
| |
− | |
| |
− | |
| |
− | |
| |
− | |-
| |
− | !style="text-align: right; padding: 0.5em;"| Karbon
| |
− | |
| |
− | |
| |
− | |
| |
− | |
| |
− | |
| |
− | |-
| |
− | !style="text-align: right; padding: 0.5em;"| Kexi
| |
− | | X
| |
− | | X
| |
− | |
| |
− | |
| |
− | |
| |
− | |-
| |
− | !style="text-align: right; padding: 0.5em;"| Krita
| |
− | |
| |
− | |
| |
− | | X
| |
− | |
| |
− | |
| |
− | |-
| |
− | !style="text-align: right; padding: 0.5em;"| Plan
| |
− | |
| |
− | |
| |
− | |
| |
− | |
| |
− | |
| |
− | |-
| |
− | !style="text-align: right; padding: 0.5em;"| Sheets
| |
− | |
| |
− | | X
| |
− | |
| |
− | |
| |
− | |
| |
− | |-
| |
− | !style="text-align: right; padding: 0.5em;"| Stage
| |
− | |
| |
− | |
| |
− | |
| |
− | |
| |
− | |
| |
− | |-
| |
− | !style="text-align: right; padding: 0.5em;"| Words
| |
− | |
| |
− | |
| |
− | |
| |
− | |
| |
− | |
| |
− | |-
| |
− | |}
| |
− | | |
− | == Fine-grained Selection ==
| |
− | Advanced users and developers wishing to design completely own
| |
− | productsets can do so. How to do that is described in the file
| |
− | [https://projects.kde.org/projects/calligra/repository/revisions/master/entry/cmake/productsets/README
| |
− | | |
− | README] in the <tt> cmake/productsets </tt> directory of
| |
− | the Calligra sources. Creating own productsets is the recommended
| |
− | solution for this wish.
| |
− | | |
− | Alternatively, though not recommended, instead of designing completely
| |
− | own productsets, it is also possible to disabe products from a selected
| |
− | pre-defined productset. One does so by setting the corresponding
| |
− | <tt>BUILD_{application}</tt> variable to
| |
− | <tt>OFF</tt>. For example, to disable compilation of Krita
| |
− | and Karbon, you can pass
| |
− | | |
− | -DBUILD_krita=OFF -DBUILD_karbon=OFF
| |
− | | |
− | on the CMake command line. You can also do this using the
| |
− | <tt>ccmake</tt> tool included with CMake, which you may run
| |
− | ''after'' the initial CMake run but ''before'' you run
| |
− | <tt>make</tt>.
| |
− | | |
− | {{note|Many components should '''not''' be disabled using
| |
− | <tt>BUILD_{something}</tt>. Set these variables with
| |
− | caution!}}
| |
− | | |
− | = Running Calligra Applications =
| |
− | After you installed them, there are two options to now make the Calligra
| |
− | applications available for running.
| |
− | | |
− | == Running from Command Line ==
| |
− | If you have installed Calligra in a different prefix than KDElibs (which
| |
− | is recommended in this document), you have to set the environment
| |
− | variables as folows. '''These are example values reflecting the the
| |
− | recommended directory structure''':
| |
− | | |
− | export KDEDIRS=$HOME/kde4/inst:$KDEDIRS
| |
− | export PATH=$HOME/kde4/inst/bin:$PATH
| |
− | export KDEHOME=$HOME/kde4/.kde
| |
− | export KDETMP=/tmp/kdedev-$USER
| |
− | export KDEVARTMP=/var/tmp/kdedev-$USER
| |
− | export KDESYCOCA=$KDEVARTMP/ksycoca
| |
− | | |
− | Make sure temporary directories exist:
| |
− | mkdir -p $KDETMP
| |
− | mkdir -p $KDEVARTMP
| |
− | | |
− | {{note|It is important to set KDEHOME to a directory different of
| |
− | $HOME/.kde, and if the directory does not exist, it will be created
| |
− | automatically.}}
| |
− | | |
− | Then in this special environment you need to register all the Calligra
| |
− | internal plugins, by executing:
| |
− | | |
− | kbuildsycoca4
| |
− | | |
− | == Running from Menus or Desktop Icons ==
| |
− | Instead of using ''KDEDIRS'', you can add these lines to
| |
− | $HOME/.kde/share/config/kdeglobals file using text editor:
| |
− | | |
− | [Directories]
| |
− | prefixes=/path/to/install
| |
− | | |
− | And then you need to register all the Calligra internal plugins to the
| |
− | system, by executing:
| |
− | | |
− | kbuildsycoca4
| |
− | | |
− | The advantage of this is that KDE will always look for the services
| |
− | where Calligra is installed.
| |
− | For example for the recommended directory structure:
| |
− | | |
− | [Directories]
| |
− | prefixes=$HOME/kde4/inst
| |
− | | |
− | = Executing Unit Tests =
| |
− | 1. To be able to execute unit tests, you need to explicitly enable them
| |
− | in the build configuration. To do so, set the KDE4_BUILD_TESTS variable
| |
− | to "ON", either by issuing the command in the build directory:
| |
− | | |
− | cd $HOME/kde4/build/calligra
| |
− | cmake -DKDE4_BUILD_TESTS=ON .
| |
− | | |
− | Or you can run <code>ccmake .</code> in the buld directory
| |
− | and set KDE4_BUILD_TESTS to "on".
| |
− | | |
− | 2. Then run the test by executing:
| |
− | | |
− | make test
| |
− | | |
− | or run a test app individually in the tests directories.
| |
− | | |
− | 3. Note: It is recommended to execute | |
− | | |
− | make install
| |
− | | |
− | before running tests.
| |
− | | |
− | = CMake Build Options =
| |
− | When you enter your build directory, you can type "ccmake ." to see many
| |
− | build options, e.g. you can turn off compilation of apps you don't want
| |
− | - you can save time when compiling.
| |
− | | |
− | Here is list for Krita related options:
| |
− | * HAVE_MEMORY_LEAK_TRACKER [On/Off] - You can turn on compilation of the
| |
− | tool in krita which detects memory leak. If you want to help debug
| |
− | Krita memory usage, it is useful. Otherwise you just slow down your
| |
− | Krita.
| |
− | * HAVE_BACKTRACE_SUPPORT [On/Off] - It is related to the memory leak
| |
− | tool. If you activate, you will be able to see code path which leads to
| |
− | memory leak.
| |
− | | |
− | = Resources =
| |
− | *[[../Developer Info|Useful hints for who wants to hack on Calligra]]
| |
− | *[http://wiki.opengtl.org/libraries:developers-resources Opengtl
| |
− | debugging, or turning it off]
| |
− | *[http://winkde.org/pub/kde/ports/win32/dashboard/ Status of Calligra
| |
− | build on Windows (msvc 2008, mingw)]
| |
− | | |
− | = Possible Issues =
| |
− | | |
− | If you get errors when running an application like:
| |
− | | |
− | krita(8565)/calligra (lib komain) KoPluginLoader::load: Loading plugin
| |
− | "Animation Tool" failed,
| |
− | "Cannot load library
| |
− | /home/michael/kde4/inst/lib/kde4/kpresentertoolanimation.so:
| |
− | (/home/michael/kde4/inst/lib/libkopageapp.so.7: undefined symbol:
| |
− | _ZN28KoShapeContainerDefaultModel3addEP7KoShape)" ( 1 )
| |
− | | |
− | or crashes when starting an application, then you very likely have a
| |
− | version of Calligra installed through your package manager. '''As
| |
− | emphasized earlier in this document, you can only have one version of
| |
− | Calligra, and you should uninstall your packaged Calligra'''.
| |
− | | |
− | See also:
| |
− | *[[/Nightly Builds/]]
| |
− | *[[/Developing With KDevelop/]]
| |
− | *[[/Developing With QtCreator/]]
| |
− | *[http://techbase.kde.org/Projects/KDE_on_Windows Pages about compiling
| |
− | KDE software for Windows]
| |
− | *[http://techbase.kde.org/Getting_Started/Build/KDE4/Mac_OS_X Pages
| |
− | about compiling KDE software for Mac OS X]
| |
− | *[https://wiki.kubuntu.org/CompilingKoffice2 Community HOWTO dedicated
| |
− | to building for Kubuntu]
| |
− | *[http://community.kde.org/Sysadmin/GitKdeOrgManual kde's git
| |
− | infrastructure manual]
| |
− | *[http://techbase.kde.org/Development/Tutorials/Git KDE and Git for
| |
− | developers]
| |
− | *[http://git.or.cz/course/svn.html git crash course]
| |
− | *[http://community.kde.org/Calligra/Building_Calligra_on_Windows Bulding
| |
− | Calligra on Windows]
| |
− | | |
− | Note: if you want to build FreOffice using the Nokia Qt SDK, please
| |
− | check out the
| |
− | [http://techbase.kde.org/index.php?title=User:Kumarafaque&oldid=54703
| |
− | | |
− | build instructions on techbase].
| |