cmake_minimum_required(VERSION 3.31)
project(Slate)

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(${PROJECT_NAME} WIN32
        src/Slate.cpp
        src/components/Position.cpp
        src/components/Sprite.cpp
        src/systems/RenderingSystem.cpp)

target_link_libraries(${PROJECT_NAME} PRIVATE SDL3-static physfs-static pocketpy tinyxml2 EnTT::EnTT)
target_link_options(${PROJECT_NAME} PRIVATE "-static-libgcc" "-static-libstdc++")
