CLion incorporates a set of smart features, many of which depend on project-level information, such as included files, compiler flags and linker options. These details let CLion perform parsing/resolving correctly and therefore highlight, auto-complete, inspect, and navigate through your code 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. Since 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.
To work with Makefile projects in CLion, use the combination of a compilation database and a file watcher that monitors changes in the Makefiles. You can extend such projects with custom build targets and custom run/debug configurations.
Table below shows how project-level, remote, and dynamic analysis features are supported for each project format (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, some project formats are marked with a yellow check . It means that even though you can configure sanitizers and get the results in CLion, the output will be logged to console in plain text. The visualization of sanitizers 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.
* - Available for custom build targets
** - Available for custom run/debug configurations