cmake_minimum_required(VERSION 3.5)
project(gameloop)

# Set the C++ standard (optional, but good practice)
set(CMAKE_C_STANDARD 17)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_EXPORT_COMPILE_COMMANDS 1)
set(CMAKE_BUILD_TYPE Debug)

# Find the SDL2 package
find_package(SDL2 REQUIRED)
# Find the SDL2_ttf package
find_package(SDL2_ttf REQUIRED)

add_executable(gameloop
    src/window.cpp
    src/main.cpp
    src/eventManager.cpp
    src/event.cpp
    src/loopManager.cpp
    src/timer.cpp
    src/keyCodes.cpp
    src/eventHandler.cpp
    src/iMouseListener.cpp
    src/iKeyListener.cpp
    src/mouseListenerTest.cpp
    src/keyListenerTest.cpp
    src/inputSystem.cpp
    src/uiRenderer.cpp
    src/uiObject.cpp
)

target_link_libraries(gameloop ${SDL2_LIBRARIES} SDL2_ttf::SDL2_ttf)

# Include SDL2 header files and project headers
target_include_directories(gameloop PRIVATE ${SDL2_INCLUDE_DIRS})
target_include_directories(gameloop PRIVATE ${CMAKE_SOURCE_DIR}/include)

# Copy font files to the build directory
file(COPY ${PROJECT_SOURCE_DIR}/font DESTINATION ${CMAKE_BINARY_DIR})