I am completely new to CMake and never used it, always relying on VS auto-managing system like a pleb. I'm working on a school assignment where I'm making a game, and I'm using CLion since the template has been made for it.
I've had to add every new file I create to the CMake 'add_executable' keyword for it to compile and the list is getting rather long.
# project
add_executable(project
src/project/main.cpp
src/project/Scenes/SceneMenu/SceneMenu.cpp
src/project/Scenes/SceneMenu/SceneMenu.h
src/project/Objects/Object.h
src/project/Camera/Camera.h
src/project/Camera/CameraGame/CameraGame.cpp
src/project/Camera/CameraGame/CameraGame.h
src/project/Scenes/SceneGame/SceneGame.cpp
src/project/Scenes/SceneGame/SceneGame.h
src/project/Scenes/Scene.h
src/project/Scenes/SceneController.h
src/project/Objects/Menu/Ball/Ball.h
src/project/Objects/Menu/Ball/Ball.cpp
src/project/Objects/Game/Church/Church.h
src/project/Objects/Game/Church/Church.cpp
src/project/Objects/Game/Leg/Leg.h
src/project/Objects/Game/Leg/Leg.cpp
src/project/Objects/Game/Ground/Ground.h
src/project/Objects/Game/Ground/Ground.cpp
src/project/Objects/Axial/Axis.h
src/project/Objects/Axial/Axis.cpp
src/project/Objects/Game/Leg/LegLower.h
src/project/Objects/Game/Leg/LegLower.cpp
src/project/Objects/Game/Skybox/Skybox.cpp
src/project/Objects/Game/Skybox/Skybox.h
src/project/Objects/Game/Mountain/Mountain.cpp
src/project/Objects/Game/Mountain/Mountain.h
src/project/Objects/Game/Mountain/MountainSpawner.h
src/project/resources.h
src/project/Animations/Bezierpath.h
src/project/Camera/CutsceneCamera/CutsceneCamera.cpp
src/project/Camera/CutsceneCamera/CutsceneCamera.h
src/project/Scenes/SceneCut/SceneCut.cpp
src/project/Scenes/SceneCut/SceneCut.h)
target_link_libraries(project ppgso shaders)
install(TARGETS project DESTINATION .)
file(COPY "data/" DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
install(DIRECTORY data/ DESTINATION .)
Is there any way I can improve this?.. Perhaps a way I don't have to add every new source file I create, or is this the only way?
It's getting annoying to do it this way since it happened to me several times during refactoring or re-structuring that it wouldn't compile due to the wrong order of some files in CMakeLists.txt, or some that didn't rename automatically, or even got removed