Nimbin2git.christianimmanuel.de / SDL & Graphics / sdl3_3d_oop_basic_game / CMakeLists.txt

sdl3_3d_oop_basic_game git · main

git clone https://git.christianimmanuel.de/sdl-graphics/sdl3_3d_oop_basic_game.gitwget https://git.christianimmanuel.de/sdl-graphics/sdl3_3d_oop_basic_game/archive/sdl3_3d_oop_basic_game.tar.gz
CMakeLists.txt 1015 B · 40 lines raw
cmake_minimum_required(VERSION 3.20)
project(idk_game LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

find_package(SDL3 REQUIRED)

file(GLOB_RECURSE SOURCES "src/*.cpp")

add_executable(idk_game ${SOURCES})

target_include_directories(idk_game PRIVATE src)

if(NOT EXISTS "${CMAKE_SOURCE_DIR}/compile_commands.json")
    execute_process(
        COMMAND ${CMAKE_COMMAND} -E create_symlink 
        "${CMAKE_BINARY_DIR}/compile_commands.json" 
        "${CMAKE_SOURCE_DIR}/compile_commands.json"
    )
endif()

target_compile_options(idk_game PRIVATE
    -Wall -Wextra -Wshadow -Wconversion -Wsign-conversion
    -Wnull-dereference -Wdouble-promotion
)

target_link_libraries(idk_game PRIVATE SDL3::SDL3)

target_compile_options(idk_game PRIVATE
    $<$<CONFIG:Debug>:-fsanitize=address>
    $<$<CONFIG:Debug>:-fno-omit-frame-pointer>
    $<$<CONFIG:Debug>:-g>
)

target_link_options(idk_game PRIVATE
    $<$<CONFIG:Debug>:-fsanitize=address>
)