cmake_minimum_required(VERSION 3.20)
project(uc-r6 LANGUAGES CXX C)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

if(MSVC)
    add_compile_options(/permissive-)
endif()

add_executable(${PROJECT_NAME}
    src/main.cpp
    src/driver.cpp
    src/game.cpp
    src/vec_math.cpp
    src/features.cpp
    src/overlay.cpp
    src/utils.cpp

    imgui/imgui.cpp
    imgui/imgui_draw.cpp
    imgui/imgui_widgets.cpp
    imgui/imgui_tables.cpp
    imgui/imgui_impl_dx11.cpp
    imgui/imgui_impl_win32.cpp
)

target_include_directories(${PROJECT_NAME} PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}/imgui
    ${CMAKE_CURRENT_SOURCE_DIR}/src
)

target_link_libraries(${PROJECT_NAME} PRIVATE
    d3d11
    dxgi
    dwmapi
    advapi32
    user32
    imm32
)


# Kernel-mode driver (requires WDK)
option(BUILD_DRIVER "Build the r6-driver kernel module" ON)
if(BUILD_DRIVER)
    add_subdirectory(r6-driver)
endif()