CLion 2022.3 Help

Manage CMake project files

Add new files

  1. In the Project tree, right-click the folder you want to add a file into and select New from the context menu. Choose the desired file type:

    Adding new files from the Project view
  2. Specify the name, type, and additional options for the new file.

    For C++ Class, C/C++ Source, and C/C++ Header file templates, CLion will prompt you to add the new file to one or several existing CMake targets:

    Adding a new file to an existing CMake target

  3. If you have selected the target on the previous step, the new entry will be automatically added to CMakeLists.txt:

    New file added to the selected CMake target

Manage included files

  • When you include a header or source file located under the project root into any project file, CLion treats it as a project file as well. There is no need to list such includes manually in CMakeLists.txt.

    CMake project: included files

Add existing files to targets

To add a file which is not included in any of the project files or CMake targets, do one of the following:

  • Click Add to CMake Project in the top-right corner of the editor:

    Add file to CMake project
  • Select one or several files in the Project tool window and choose Add <filename> to CMake Project from the context menu:

    Add file to CMake project from context menu
  • You can also add the files to the CMake project manually.

    If the file is located under the project root, add it to a target using add_executable() or add_library() command. For example:

    Adding an existing file to the list of sources

    When the directory that contains non-project sources is located under the project root, you can also mark it as library: right-click in the Project view and select Mark Directory As | Library Files from the context menu.

    To use library files located outside the project root, you need to specify header search paths so that CLion can index the directories and provide completion and navigation for the #include statements:

    include_directories(${MY_EXTERNAL_SOURCE__DIR})

    Where MY_EXTERNAL_SOURCE__DIR is the required external path.

    Refer to Quick CMake Tutorial: Adding include directories for more information.

Upon any of these actions, CLion will prompt you to reload the project (when automatic reload is disabled).

Last modified: 06 October 2022