CLion 2023.3 EAP2: Support for Device Tree Files and Meson
The CLion 2023.3 Early Access Program has just started, featuring assembly view for files, enhanced C++ data flow analysis, and other updates.
The CLion 2023.3 EAP2 build is ready for you to try! With it, you can finally start working on Meson projects in CLion and benefit from device tree format support.
Build 233.8264.3 is available from our website, via the Toolbox App, or as a snap package if you are using Ubuntu. Update via patch if you are using the previous EAP build. EAP builds are free to use – just don’t forget to share your feedback with us!
Device tree
A device tree is a hierarchical data structure primarily used to describe hardware. It’s widely used in Zephyr and provides the initial configuration for hardware. It’s now much easier to read, navigate, and maintain such files with CLion.
Files with .dts and .dtsi extensions are treated by the IDE as device tree files and the following coding assistance options are available:
- Syntax highlighting (Settings/Preferences | Editor | Color Scheme | Devicetree) and code formatting (Settings/Preferences | Editor | Code Style | Devicetree).
- Code documentation when hovering on device tree elements.
- Structure View and code navigation through the device tree files.
- Automatic insertion of missing semicolons, matching braces, and quotation marks while typing in device tree files.
- Code completion for
/<commands>/
and labels.
You can configure the board you are using in Settings/Preferences | Build, Execution, Deployment | Devicetree. CLion will then show you additional information in the Documentation popup.
To write device tree files more effectively, CLion supports:
CLion also helps you write device tree files by providing a set of basic code analysis checks:
- CLion validates the names you are using. For example, it checks if the labels are named correctly:
Or if the node name is valid:
- CLion validates the order of the elements in the tree if it’s defined (for example, properties should be defined before nodes).
- CLion checks the array size defined by the
/bits/
option.
Device tree support is a work in progress. You can check out the planned list of enhancements linked to this main ticket in our tracker.
Meson support
A range of project models are used for C and C++ projects. CLion works out of the box with CMake, compilation databases, Makefiles, and Autotools projects. There are also plugins for Gradle, Bazel, and PlatformIO. And now, CLion also supports Meson!
You can open a Meson project in CLion and build, run, and debug it. You can configure the toolchain to use for your Meson project, build directory, and build options in Settings/Preferences | Build, Execution, Deployment | Meson.
As an example, let’s open the Mesa 3D graphics library:
The code in the meson.build file will be highlighted to help you read it more easily. You can adjust the settings in Settings/Preferences | Editor | Color Scheme | Meson.
Meson support in CLion works for all local and remote toolchains, WSL, and Docker.
Meson support is a work in progress. There are a few known issues we plan to address:
- We plan to add the ability to create a new Meson project from the CLion New Project wizard (CPP-31647).
- We will work on improving code highlighting and assistance in the meson.build files and add Structure View for them (CPP-35183).
- We will provide the ability to customize Meson options in CLion (CPP-35165, CPP-35316).
- We plan to add support for multiple profiles (CPP-32148).
There are more issues linked to this parent ticket.
The full release notes are available here.
Your CLion team
JetBrains
The Drive to Develop