cmake_minimum_required(VERSION 3.20)
project(DoorNroll CXX)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

include(FetchContent)

set(BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
set(BUILD_GAMES OFF CACHE BOOL "" FORCE)

FetchContent_Declare(
    raylib
    GIT_REPOSITORY https://github.com/raysan5/raylib.git
    GIT_TAG 5.5
    GIT_SHALLOW TRUE
)

FetchContent_MakeAvailable(raylib)

add_executable(DoorNroll
    src/main.cpp
    src/core/Game.cpp
    src/core/SoundManager.cpp
    src/dungeon/Dungeon.cpp
    src/dungeon/DungeonGen.cpp
    src/dungeon/Player.cpp
    src/combat/CombatSystem.cpp
    src/combat/Revolver.cpp
    src/combat/Enemy.cpp
    src/hacking/HackingGame.cpp
    src/hacking/TumblerLock.cpp
    src/hacking/DbdSkillCheck.cpp
    src/inventory/InventoryUI.cpp
    src/render/CyberRenderer.cpp
    src/render/UIRenderer.cpp
    src/hub/HubRoom.cpp
    src/hub/RestRoom.cpp
    src/core/SaveSystem.cpp
    src/debug/DebugSystem.cpp
)

target_include_directories(DoorNroll PRIVATE src)
target_link_libraries(DoorNroll PRIVATE raylib)

if (MSVC)
    target_compile_options(DoorNroll PRIVATE /W3 /permissive- /utf-8)
endif()

add_custom_command(TARGET DoorNroll POST_BUILD
    COMMAND ${CMAKE_COMMAND} -E copy_directory
        "${CMAKE_CURRENT_SOURCE_DIR}/assets"
        "$<TARGET_FILE_DIR:DoorNroll>/assets"
)
