|
|
(50 intermediate revisions by 3 users not shown) |
Line 1: |
Line 1: |
| CLion is a proprietary IDE for C++.
| | Moved to https://develop.kde.org/docs/getting-started/building/ide/clion/ |
| | |
| == Install CLion ==
| |
| | |
| On Arch Linux install the [https://aur.archlinux.org/packages/clion 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.
| |
| | |
| [[File:Clion open as cmake project.png|frameless|300px|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".
| |
| | |
| [[File:Clion build configuration.png|frameless|700px|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:
| |
| | |
| <syntaxhighlight lang="ini">
| |
| -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
| |
| </syntaxhighlight>
| |
| | |
| You probably would want to save that to file `~/kde/clion_cmake_options.txt` for future use.
| |
| | |
| Press OK.
| |
| | |
| In the run/debug target (in the upper right corner of main window), select "dolphin".
| |
| | |
| [[File:Clion select run debug configuration.png|frameless|300px|select run debug configuration]]
| |
| | |
| Expand it and choose Edit.
| |
| | |
| [[File:Clion go to run debug configuration edit.png|frameless|300px|go to run debug configuration edit]]
| |
| | |
| The Run/Debug Configurations window will appear.
| |
| | |
| [[File:Clion run debug configuration.png|frameless|500px|run debug configuration]]
| |
| | |
| In the Environment variables field click edit button.
| |
| | |
| You can add variables in there manually or reuse exports from <code>prefix.sh</code> script from build directory.
| |
| | |
| Note: if you want to modify debugging output messages, you can add corresponding variables there. See [[Guidelines and HOWTOs/Debugging/Using Error Messages#Controlling_Messages]].
| |
| | |
| [[File:Clion run environment variables.png|frameless|400px|run debug variables configuration]]
| |
| | |
| === Reusing existing prefix.sh ===
| |
| | |
| For convenience, copy the <code>/home/username/kde/build/dolphin/prefix.sh</code> to <code>/home/username/kde/clion_run_environment.sh</code>. [https://www.jetbrains.com/help/clion/2023.2/run-debug-configuration.html#envvars-progargs Use] the following syntax for setting variables in that script: <code>export VAR=value</code>.
| |
| | |
| In the Environment Variables dialog, in the Load Variables from file field, paste the path <code>/home/username/kde/clion_run_environment.sh</code>.
| |
| | |
| === Setting variables manually ===
| |
| | |
| 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>
| |
| | |
| 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>.
| |
| | |
| Then in the Environment Variables dialog, paste the contents of the <code>~/kde/clion_run_environment.txt</code>.
| |
| | |
| == Additional settings ==
| |
| | |
| In the Settings | Build, Execution, Deployment | 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].
| |
| | |
| [[File:Clion use bundled cmake and gdb.png|frameless|500px|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.
| |