SDL_Game_CPP git · main
git clone https://git.christianimmanuel.de/sdl-graphics/SDL_Game_CPP.gitwget https://git.christianimmanuel.de/sdl-graphics/SDL_Game_CPP/archive/SDL_Game_CPP.tar.gzCMakeLists.txt raw
cmake_minimum_required(VERSION 3.10)
project(map_editor LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(ENABLE_OPTIMIZATION "" CACHE STRING "Build mode: empty, NOOPT, DEBUG, or OPTIMIZED")
file(GLOB_RECURSE SRC_FILES
${CMAKE_SOURCE_DIR}/src/*.cpp
)
add_executable(map_editor
main.cpp
${SRC_FILES}
)
target_include_directories(map_editor
PRIVATE
${CMAKE_SOURCE_DIR}/src
)
target_link_libraries(map_editor
PRIVATE
SDL3
SDL3_ttf
SDL3_image
SDL3_mixer
)
target_compile_options(map_editor PRIVATE -Wall -Wextra)
if(ENABLE_OPTIMIZATION STREQUAL "NOOPT")
target_compile_options(map_editor PRIVATE -fsanitize=address -fno-omit-frame-pointer -g -O0)
target_link_options(map_editor PRIVATE -fsanitize=address)
target_compile_definitions(map_editor PRIVATE)
elseif(ENABLE_OPTIMIZATION STREQUAL "DEBUG")
set(CMAKE_BUILD_TYPE Debug CACHE STRING "Build type" FORCE)
target_compile_options(map_editor PRIVATE -fsanitize=address -fno-omit-frame-pointer -g -O0)
target_link_options(map_editor PRIVATE -fsanitize=address)
target_compile_definitions(map_editor PRIVATE DEBUG_BUILD)
elseif(ENABLE_OPTIMIZATION STREQUAL "OPTIMIZED")
set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type" FORCE)
target_compile_options(map_editor PRIVATE
-O3
-march=native
-mtune=native
-flto
-fomit-frame-pointer
)
target_link_options(map_editor PRIVATE
-flto
)
target_compile_definitions(map_editor PRIVATE NDEBUG)
endif()
# At the end of your CMakeLists.txt
add_custom_target(clean-all
COMMAND ${CMAKE_COMMAND} -E rm -rf
${CMAKE_CURRENT_BINARY_DIR}/CMakeCache.txt
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles
${CMAKE_CURRENT_BINARY_DIR}/Makefile
${CMAKE_CURRENT_BINARY_DIR}/cmake_install.cmake
${CMAKE_CURRENT_BINARY_DIR}/map_editor
${CMAKE_CURRENT_BINARY_DIR}/map_editor.exe # Windows
COMMENT "Cleaning all build artifacts"
)