Clion how to add files to a project

16,003

Solution 1

CLion parses the CMakeLists.txt and uses it to generate a project view, but I believe the only way to add files to the project is to edit the CMakeLists.txt to include those files. I expect that eventually this will change similar to the way IntelliJ integrates with a pom.xml file in a Java project, but for now you edit the CMakeLists.txt.

Solution 2

There is also a way to make CLion to add any cpp and h files (I don't know why don't they do it by default) and is to add this line:

file(GLOB SOURCES
    *.h
    *.cpp
)

and also edit the line of:

add_executable(ClionProject ${SOURCE_FILES} ${SOURCES})

In this example: ClionProject is actually the name of the project. SOURCES_FILES and SOURCES can be whatever you want.

Another good idea is to go to File -> Settings -> Build, Execution, Deployment -> CMake and tick on "Automatic reload CMake project on editing"

Here is a good starting tutorial: https://www.jetbrains.com/help/clion/2016.3/quick-cmake-tutorial.html

Share:
16,003

Related videos on Youtube

jkj yuio
Author by

jkj yuio

Android developer

Updated on June 18, 2022

Comments

  • jkj yuio
    jkj yuio 6 months

    This seems really basic. How can i add files to a project without having to manually edit the CMakeLists.txt.

    For example source files in another directory

    • usr1234567
      usr1234567 about 7 years
      CMake is a build-system and not a project management. If you only want to add a header, you don't need to do anything. Please be more precise with your question.
    • jkj yuio
      jkj yuio about 7 years
      Yes, the question relates to limitations with clion not with cmake
  • kmac
    kmac about 7 years
    +1 You really don't want clion editing your CMakeLists.txt. You can look into file(GLOB ...) and file(GLOB_RECURSE ...) to automatically find newly added source. But you'll have to force CMake to be re-run in order for them to be added.
  • legalize
    legalize about 7 years
    @kmac I'm not a fan of the GLOB approach, particularly if you have platform specific sources and you want to conditionally add them to the project. For simple projects, it's fine, but I prefer adding the files explicitly.
  • kmac
    kmac about 7 years
    Yes, this tends to be a hotly debated subject. I think that it is a very useful tool, though not always appropriate. Even in complex projects, if components are broken down into smaller libraries (or even source sub-folders), GLOB can still work well if used judiciously. We're happily working away like this on a project with 400k+ lines of code -- no regrets :).

Related