Hello, I haven’t found anything in the wiki or on the internet on how to correctly configure a project in SDL/C++, using Kdevelop?
Does anyone know a tutorial or a very secret video that explains very well how to configure it?
greetings
Well, the main thing is that you need a CMakeLists.txt
that is correctly configured for this. The problem is that it’s very difficult to find the right way to do this on the internet, for whatever reason people simply don’t document it anywhere and upstream SDL doesn’t have instructions for this either, so I had to look in the actual CMake configuration files…
You can see my closed pull request for Centurion here, it details how to use it with CMake: Add CMakeLists example by herzenschein · Pull Request #132 · albin-johansson/centurion · GitHub (I was planning to upstream the instructions to SDL at some point, but oh well)
This should work as a good example to start with:
cmake_minimum_required(VERSION 3.20)
project(yourapp)
find_package(SDL2 REQUIRED)
find_package(SDL2_image REQUIRED)
find_package(SDL2_mixer REQUIRED)
find_package(SDL2_ttf REQUIRED)
add_executable(yourapp)
target_sources(yourapp PRIVATE
main.cpp
)
target_link_libraries(yourapp PRIVATE
SDL2::SDL2
SDL2_image::SDL2_image
SDL2_mixer::SDL2_mixer
SDL2_ttf::SDL2_ttf
)
If you use C++ source files (.cpp), CMake will automatically detect it’s a C++ project rather than C. And because of the CMakeLists.txt
, KDevelop should detect the project correctly.