Calligra/Building/2/Developing With QtCreator: Difference between revisions

From KDE Community Wiki
< Calligra‎ | Building‎ | 2
(Created page with '==Building== First, you have to get the source of KOffice and install all dependencies. That is discribed best in the Building KOffice Arti...')
 
No edit summary
 
(10 intermediate revisions by 2 users not shown)
Line 1: Line 1:
==Building==
If everything is setup properly as explained here, you will be able to run Calligra apps and debug them from within Qt Creator. Git integration works too.
First, you have to get the source of KOffice and install all dependencies. That is discribed best in the [[Calligra/Building/Building KOffice|Building KOffice]] Article, which would be anyway a good read, if you are building the first time. I have tested the following instructions on KOffice 2.2 trunk (rev. 1129718), QtCreator 1.3.1 and Qt 4.6.2.


# Start Creator, from the file menu call open and point it to the CMakeLists.txt file which is in the root of your koffice sourcetree. The CMake wizard should start.
{{Note|First, you have to get the source of Calligra and install all dependencies. That is described best in the [[Calligra/Building/2|Building Calligra 2.x]] article, which would be anyway a must read, if you are building the first time. Following recipes were tested for Calligra 2.x , QtCreator 2.x or newer and Qt 4.8.x. All paths here are kept similar to these explained on the ''Building Calligra'' page but make sure you use correct ones. }}
# You can set an custom build directory, but I left the standard one (/path/to/source/qtcreator-build).
{{Note|This is a simplified Calligra- and CMake- specific recipe, more extensive documentation is at [https://qt-project.org/doc/qtcreator-3.2/creator-project-cmake.html].}}
# On the following page you should add at least the install-dir build option: <br>''-DCMAKE_INSTALL_PREFIX=/home/user/devel/kde/''<br>Depending on what kind of build you want, you can also add these:
 
#* For a full development build.<br>''-DKDE4_BUILD_TESTS=1 -DCMAKE_BUILD_TYPE:STRING=debugfull''
# Start Qt Creator, use ''File -> Open File or Project'' from the menu and select CMakeLists.txt file which is in the root of your Calligra source tree directory. The CMake wizard should start.
#* For a build where you want to be able to report bugs (backtraces) and maybe develop on<br>''-DBUILD_TESTS=0 -DCMAKE_BUILD_TYPE:STRING=debugfull''
# In the ''Build Location'' wizard's page you can set a custom build directory. Better do not use the proposed one (/path/to/source/qtcreator-build) but /home/YOURLOGIN/kde4/build/calligra or something like this. If you built this code from command line before, it's best idea to use the same build dir as before. Thus you can use Creator-based and command line-based builds exchangeably.
#* For a fast running release build, not really useful for development.<br>''-DKDE4_BUILD_TESTS=0 -DBUILD_TESTS=0 -DCMAKE_BUILD_TYPE=release''
# Click ''Next''. On the ''Run CMake'' wizard page you should add at least the install-dir build option:<br><br><pre>-DCMAKE_INSTALL_PREFIX=/home/YOURLOGIN/kde4/inst</pre>Depending on what kind of build you want, you can also append these options:
#* I used the following string:<br>''-DCMAKE_INSTALL_PREFIX=/home/damdam/progn/kde/inst -DCMAKE_BUILD_TYPE:STRING=debugfull''
#* For a build where you want to be able to obtain backtraces (good for bugfixing or reporting bugs)<br><pre>-DCMAKE_BUILD_TYPE=DebugFull</pre>
#* For building tests as well append <br><pre>-DKDE4_BUILD_TESTS=ON</pre>
#* For a fast running release build (not really useful for development).<br><pre>-DKDE4_BUILD_TESTS=0 -DBUILD_TESTS=0 -DCMAKE_BUILD_TYPE=Release</pre>
# After finishing the wizard, change to the Project view.
# After finishing the wizard, change to the Project view.
# Edit the make build step and set the additional arguments to install
# Edit the ''Make'' build step and set the ''Additional arguments'' to:<br/><pre>-j5 install</pre> (change 5 to other number as explained at [https://community.kde.org/Calligra/Building#Speed_up])
# Add build step: <br>''enable, name=Kbuildsycoca4, command=kbuildsycoca4, working dir=$BUILDDIR, command args=''
# Add the variables to the build environment as listed below. You can use the ''Batch Edit'' button for convenience. See also [http://qt-project.org/doc/qtcreator-3.2/creator-build-settings.html#build-environment Qt Creator Manual]. Note you cannot use $HOME and other variables there. Compare to [https://techbase.kde.org/Getting_Started/Build/Environment]. Replace paths containing lib64 with other if your OS is 32 bit.<br><pre>CMAKE_PREFIX_PATH=/home/YOURLOGIN/kde4/inst</pre><pre>KDEDIRS=/home/YOURLOGIN/kde4/inst</pre><pre>KDEHOME=/home/YOURLOGIN/kde4/inst/.kde4</pre><pre>KDESYCOCA=/var/tmp/kdedev-YOURLOGIN/ksycoca</pre><pre>KDETMP=/tmp/kdedev-YOURLOGIN</pre><pre>KDEVARTMP=/var/tmp/kdedev-YOURLOGIN</pre><pre>KDE_INSTALL_PREFIX=/home/YOURLOGIN/kde4/inst</pre><pre>LD_LIBRARY_PATH=/home/YOURLOGIN/kde4/inst/lib64</pre><pre>PATH=/home/YOURLOGIN/kde4/inst/bin:/usr/bin:/usr/local/bin:/bin:/usr/bin/X11:/usr/X11R6/bin</pre><pre>PKG_CONFIG_PATH=/home/YOURLOGIN/kde4/inst/lib64/pkgconfig</pre><pre>QT_PLUGIN_PATH=/home/YOURLOGIN/kde4/inst/lib64/kde4/plugins</pre>
# Add the following variables to the build environment
# Assure, that in ''Run Settings'' ''Run Environment'' is set to ''Use Build Environment''
#* find out kdedir: enter 'kde4-config --prefix' into the konsole, on my sys it was ''/usr''
# Now in project's ''Run Settings'' you can select in the ''Run configuration'' which program should start when you execute ''Run'' or ''Debug''.
#* ''KDEDIRS=/home/damdam/progn/kde/inst:/usr''
#* ''LD_LIBRARY_PATH=/home/damdam/progn/kde/inst/lib''
# Assure, that Run Environment -> Base environment = Build Environment
 
Now you can select in Project -> Active run configuration, which program should start.
 
With this guide it's possible to run and to debug, svn works too. Adding a breakpoint works in my case only after the application is started already in debug mode. After setting the breakpoint, the debugger seems to stop, but starts again automatically (don't click on continue, that is evil).
 
==Speed up==
* Open a console in /path/to/source/qtcreator-build and type 'ccmake .', there you can switch off unneeded parts of koffice.<br>What I've enabled for developing Krita: BUILD_colorengines, BUILD_dockers, BUILD_krita, BUILD_libkowmf (needed by vectorshape), BUILD_vectorshape<br>I've not touched any variable below BZIP2_EXECUTABLE.
* Open the project settings and add ''--quiet -j 3'' to Build Steps->Make->Additional arguments, where 3 is the thread count (3 works better than 2 on my Athlon x2)
* Move kdedirs and ld lib path to .bashrc:<br>''export LD_LIBRARY_PATH=/home/damdam/progn/kde/inst/lib''<br>''export KDEDIRS=/home/damdam/progn/kde/inst:/usr''<br>run .bashrc, so that these two varis get exported and then run ''kbuildsycoca4''. Finally remove it from the build steps.<br> If you update modules in cmake or there are bigger lib changes, you have to run kbuildsycoca4 on yourself, but it doesn't get started every time compiling.

Latest revision as of 17:09, 9 May 2015

If everything is setup properly as explained here, you will be able to run Calligra apps and debug them from within Qt Creator. Git integration works too.

Note

First, you have to get the source of Calligra and install all dependencies. That is described best in the Building Calligra 2.x article, which would be anyway a must read, if you are building the first time. Following recipes were tested for Calligra 2.x , QtCreator 2.x or newer and Qt 4.8.x. All paths here are kept similar to these explained on the Building Calligra page but make sure you use correct ones.

Note

This is a simplified Calligra- and CMake- specific recipe, more extensive documentation is at [1].


  1. Start Qt Creator, use File -> Open File or Project from the menu and select CMakeLists.txt file which is in the root of your Calligra source tree directory. The CMake wizard should start.
  2. In the Build Location wizard's page you can set a custom build directory. Better do not use the proposed one (/path/to/source/qtcreator-build) but /home/YOURLOGIN/kde4/build/calligra or something like this. If you built this code from command line before, it's best idea to use the same build dir as before. Thus you can use Creator-based and command line-based builds exchangeably.
  3. Click Next. On the Run CMake wizard page you should add at least the install-dir build option:

    -DCMAKE_INSTALL_PREFIX=/home/YOURLOGIN/kde4/inst
    Depending on what kind of build you want, you can also append these options:
    • For a build where you want to be able to obtain backtraces (good for bugfixing or reporting bugs)
      -DCMAKE_BUILD_TYPE=DebugFull
    • For building tests as well append
      -DKDE4_BUILD_TESTS=ON
    • For a fast running release build (not really useful for development).
      -DKDE4_BUILD_TESTS=0 -DBUILD_TESTS=0 -DCMAKE_BUILD_TYPE=Release
  4. After finishing the wizard, change to the Project view.
  5. Edit the Make build step and set the Additional arguments to:
    -j5 install
    (change 5 to other number as explained at [2])
  6. Add the variables to the build environment as listed below. You can use the Batch Edit button for convenience. See also Qt Creator Manual. Note you cannot use $HOME and other variables there. Compare to [3]. Replace paths containing lib64 with other if your OS is 32 bit.
    CMAKE_PREFIX_PATH=/home/YOURLOGIN/kde4/inst
    KDEDIRS=/home/YOURLOGIN/kde4/inst
    KDEHOME=/home/YOURLOGIN/kde4/inst/.kde4
    KDESYCOCA=/var/tmp/kdedev-YOURLOGIN/ksycoca
    KDETMP=/tmp/kdedev-YOURLOGIN
    KDEVARTMP=/var/tmp/kdedev-YOURLOGIN
    KDE_INSTALL_PREFIX=/home/YOURLOGIN/kde4/inst
    LD_LIBRARY_PATH=/home/YOURLOGIN/kde4/inst/lib64
    PATH=/home/YOURLOGIN/kde4/inst/bin:/usr/bin:/usr/local/bin:/bin:/usr/bin/X11:/usr/X11R6/bin
    PKG_CONFIG_PATH=/home/YOURLOGIN/kde4/inst/lib64/pkgconfig
    QT_PLUGIN_PATH=/home/YOURLOGIN/kde4/inst/lib64/kde4/plugins
  7. Assure, that in Run Settings Run Environment is set to Use Build Environment
  8. Now in project's Run Settings you can select in the Run configuration which program should start when you execute Run or Debug.