Project formats
CLion incorporates a set of smart features, many of which depend on project-level information (included files, compiler flags, and linker options). This information allows CLion to parse/resolve your code correctly and therefore highlight, auto-complete, inspect, and navigate through it in an error-free and convenient way.
CLion does not provide its own project model for your code but supports the following formats:
In addition, you can set up custom build targets that call external tools to perform build and clean, and create custom run/debug configurations for such targets. As custom targets are independent of any particular build system, they can, for example, provide the functionality of building and running for your compilation database projects.
The table below shows how various project-level, remote, and dynamic analysis features are supported for each of the project formats (compilation database is referred to as CompDB for brevity). This table doesn't include remote GDB / gdbserver, since it's implementation in CLion works completely independent from any project model.
For Google Sanitizers and Code Coverage, some project formats are marked with a yellow check . It means that even though you can configure these features and get results in CLion, the output will be logged to console in plain text. The visualization of sanitizers and code coverage output is available for CMake projects only.
Also, note that some of the features marked as supported may not work out-of-the-box, and you will need to perform additional configuration steps before starting to use them.
CMake | CompDB | CompDB with custom targets and configurations | Gradle | Makefiles | |
---|---|---|---|---|---|
Open project | |||||
New project wizard | |||||
Build | |||||
Run / Debug | |||||
WSL | |||||
Full remote mode | |||||
Valgrind Memcheck | |||||
Profiler | |||||
Sanitizers | |||||
Code coverage |