cmake_minimum_required(VERSION 3.31)
project(dungeon)

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/$<CONFIGURATION>")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/$<CONFIGURATION>")
set(tinyxml2_SHARED_LIBS OFF)
set(SDL_STATIC ON)

add_subdirectory(lib/SDL EXCLUDE_FROM_ALL)
add_subdirectory(lib/entt EXCLUDE_FROM_ALL)
add_subdirectory(lib/physfs EXCLUDE_FROM_ALL)
add_subdirectory(lib/pocketpy EXCLUDE_FROM_ALL)
add_subdirectory(lib/tinyxml2 EXCLUDE_FROM_ALL)

add_executable(dungeon WIN32 src/Dungeon.cpp src/components/Position.cpp src/components/Sprite.cpp src/systems/RenderingSystem.cpp)
target_link_libraries(dungeon PRIVATE SDL3-static physfs-static pocketpy tinyxml2 EnTT::EnTT)
target_link_options(dungeon PRIVATE "-static-libgcc" "-static-libstdc++")
