Get Involved/development/IDE configuration/CLion: Difference between revisions

From KDE Community Wiki
(Suggest to save cmake options to file, colorize)
(→‎Setup: Add instructions to prepare run environment variables)
Line 25: Line 25:


You probably would want to save that to file `~/kde/clion_cmake_options.txt` for future use.
You probably would want to save that to file `~/kde/clion_cmake_options.txt` for future use.
Press OK.
Press OK.
Translate the content of the file <code>~/kde/build/dolphin/prefix.sh</code> to the variables list that you can paste to CLion. E.g. if <code>~/kde/build/dolphin/prefix.sh</code> is like:
<syntaxhighlight lang="bash">
export PATH=/home/username/kde/usr/bin:$PATH
# LD_LIBRARY_PATH only needed if you are building without rpath
# export LD_LIBRARY_PATH=/home/username/kde/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
export XDG_DATA_DIRS=/home/username/kde/usr/share:${XDG_DATA_DIRS:-/usr/local/share/:/usr/share/}
export XDG_CONFIG_DIRS=/home/username/kde/usr/etc/xdg:${XDG_CONFIG_DIRS:-/etc/xdg}
export QT_PLUGIN_PATH=/home/username/kde/usr/lib/x86_64-linux-gnu/plugins:$QT_PLUGIN_PATH
export QML2_IMPORT_PATH=/home/username/kde/usr/lib/x86_64-linux-gnu/qml:$QML2_IMPORT_PATH
export QT_QUICK_CONTROLS_STYLE_PATH=/home/username/kde/usr/lib/x86_64-linux-gnu/qml/QtQuick/Controls.2/:$QT_QUICK_CONTROLS_STYLE_PATH
</syntaxhighlight>
Then the same thing in the form of variables list for CLion looks like this block of text:
<syntaxhighlight lang="bash">
PATH=/home/username/kde/usr/bin:$PATH
XDG_DATA_DIRS=/home/username/kde/usr/share:${XDG_DATA_DIRS:-/usr/local/share/:/usr/share/}
XDG_CONFIG_DIRS=/home/username/kde/usr/etc/xdg:${XDG_CONFIG_DIRS:-/etc/xdg}
QT_PLUGIN_PATH=/home/username/kde/usr/lib/x86_64-linux-gnu/plugins:$QT_PLUGIN_PATH
QML2_IMPORT_PATH=/home/username/kde/usr/lib/x86_64-linux-gnu/qml:$QML2_IMPORT_PATH
QT_QUICK_CONTROLS_STYLE_PATH=/home/username/kde/usr/lib/x86_64-linux-gnu/qml/QtQuick/Controls.2/:$QT_QUICK_CONTROLS_STYLE_PATH
</syntaxhighlight>
Note: if you want to modify debugging output messages, you can add corresponding variables here. See [[Guidelines and HOWTOs/Debugging/Using Error Messages#Controlling_Messages]].
You probably want to save the above block of text, in order to reuse it when loading other KDE git repositories in CLion. E.g. to file <code>~/kde/clion_run_environment.txt</code>.


In the run/debug target (in the upper right corner of main window), select "dolphin".
In the run/debug target (in the upper right corner of main window), select "dolphin".
Line 35: Line 68:
[[File:Clion go to run debug configuration edit.png|border|300px|go to run debug configuration edit]]
[[File:Clion go to run debug configuration edit.png|border|300px|go to run debug configuration edit]]


The Run/Debug Configurations window will appear. In the Environment variables field click edit button.
The Run/Debug Configurations window will appear.


[[File:Clion run debug configuration.png|border|500px|run debug configuration]]
[[File:Clion run debug configuration.png|border|500px|run debug configuration]]


Add variables, that you can find in build directory, for example, in "/home/username/kde/build/dolphin/prefix.sh".
In the Environment variables field click edit button. Add variables, that you prepared in <code>~/kde/clion_run_environment.txt</code> as described above.


[[File:Clion run debug configuration add variables.png|border|500px|run debug configuration add variables]]
[[File:Clion run debug configuration add variables.png|border|500px|run debug configuration add variables]]
Note: if you want to modify debugging output messages, you can add corresponding variables here. See [[Guidelines and HOWTOs/Debugging/Using Error Messages#Controlling_Messages]].


In the Toolchains you can use bundled cmake and gdb. In Arch Linux their versions are very recent and not yet supported by CLion. They can be installed with [https://aur.archlinux.org/packages/clion-cmake clion-cmake] and [https://aur.archlinux.org/packages/clion-gdb clion-gdb].
In the Toolchains you can use bundled cmake and gdb. In Arch Linux their versions are very recent and not yet supported by CLion. They can be installed with [https://aur.archlinux.org/packages/clion-cmake clion-cmake] and [https://aur.archlinux.org/packages/clion-gdb clion-gdb].

Revision as of 16:30, 29 August 2023

CLion is a proprietary IDE for C++.

Install CLion

On Arch Linux install the clion.

Setup

Open a new project in CLion. Locate it to the folder with CMakeLists.txt. It will ask how do you want to open the project. Select CMake project.

open as cmake project

In CMake configuration, choose Debug build. In the Generator, set "Let Cmake decide". In the Build directory, insert the build directory path, for example, "/home/username/kde/build/dolphin".

build configuration

In this same window, under CMake options, we must set some important variables such as CMAKE_PREFIX_PATH. If the prefix was in "/home/username/kde", then the CMake options line would look like:

-DCMAKE_PREFIX_PATH=/home/username/kde/usr
-DCMAKE_MODULE_PATH=/home/username/kde/usr/lib64/cmake:/home/username/kde/usr/lib/cmake
-DQT_PLUGIN_PATH=/home/username/kde/usr/lib64/plugins:/home/username/kde/usr/lib/plugins
-DXDG_DATA_DIRS=/home/username/kde/usr/share

You probably would want to save that to file `~/kde/clion_cmake_options.txt` for future use.

Press OK.

Translate the content of the file ~/kde/build/dolphin/prefix.sh to the variables list that you can paste to CLion. E.g. if ~/kde/build/dolphin/prefix.sh is like:

export PATH=/home/username/kde/usr/bin:$PATH

# LD_LIBRARY_PATH only needed if you are building without rpath
# export LD_LIBRARY_PATH=/home/username/kde/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH

export XDG_DATA_DIRS=/home/username/kde/usr/share:${XDG_DATA_DIRS:-/usr/local/share/:/usr/share/}
export XDG_CONFIG_DIRS=/home/username/kde/usr/etc/xdg:${XDG_CONFIG_DIRS:-/etc/xdg}

export QT_PLUGIN_PATH=/home/username/kde/usr/lib/x86_64-linux-gnu/plugins:$QT_PLUGIN_PATH
export QML2_IMPORT_PATH=/home/username/kde/usr/lib/x86_64-linux-gnu/qml:$QML2_IMPORT_PATH

export QT_QUICK_CONTROLS_STYLE_PATH=/home/username/kde/usr/lib/x86_64-linux-gnu/qml/QtQuick/Controls.2/:$QT_QUICK_CONTROLS_STYLE_PATH

Then the same thing in the form of variables list for CLion looks like this block of text:

PATH=/home/username/kde/usr/bin:$PATH
XDG_DATA_DIRS=/home/username/kde/usr/share:${XDG_DATA_DIRS:-/usr/local/share/:/usr/share/}
XDG_CONFIG_DIRS=/home/username/kde/usr/etc/xdg:${XDG_CONFIG_DIRS:-/etc/xdg}
QT_PLUGIN_PATH=/home/username/kde/usr/lib/x86_64-linux-gnu/plugins:$QT_PLUGIN_PATH
QML2_IMPORT_PATH=/home/username/kde/usr/lib/x86_64-linux-gnu/qml:$QML2_IMPORT_PATH
QT_QUICK_CONTROLS_STYLE_PATH=/home/username/kde/usr/lib/x86_64-linux-gnu/qml/QtQuick/Controls.2/:$QT_QUICK_CONTROLS_STYLE_PATH

Note: if you want to modify debugging output messages, you can add corresponding variables here. See Guidelines and HOWTOs/Debugging/Using Error Messages#Controlling_Messages.

You probably want to save the above block of text, in order to reuse it when loading other KDE git repositories in CLion. E.g. to file ~/kde/clion_run_environment.txt.

In the run/debug target (in the upper right corner of main window), select "dolphin".

select run debug configuration

Expand it and choose Edit.

go to run debug configuration edit

The Run/Debug Configurations window will appear.

run debug configuration

In the Environment variables field click edit button. Add variables, that you prepared in ~/kde/clion_run_environment.txt as described above.

run debug configuration add variables

In the Toolchains you can use bundled cmake and gdb. In Arch Linux their versions are very recent and not yet supported by CLion. They can be installed with clion-cmake and clion-gdb.

use bundled cmake and gdb

Tips and Tricks

Out of tree breakpoints

You may want the debugger to stop on a specific breakpoint, that is located out of project tree. For example, you run and debug dolphin project: select several files, with context menu you add them to archive. And you want the debugger to stop on some function of Ark's code.

For this, you just open the corresponding file, and put a breakpoint there. No even need to map sources, like you need in Qt Creator.