cmake_minimum_required(VERSION 3.25)
project(HOTD3Native LANGUAGES C CXX)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/Dependencies.cmake")
include("${CMAKE_CURRENT_SOURCE_DIR}/sdk/cmake/XbeRecomp.cmake")
file(GLOB XBE_HOST_SOURCES CONFIGURE_DEPENDS src/common/*.cpp)
add_xbe_image(HOTD3 hod3xb.xbe game.toml 32 game)
target_compile_definitions(HOTD3 PRIVATE HOTD3_SDL_INPUT=1)
set_target_properties(HOTD3 PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}")
enable_testing()
add_xbe_tests(HOTD3RuntimeTests)
add_executable(HOTD3MouseTests tests/mouse_gun.cpp)
target_include_directories(HOTD3MouseTests PRIVATE src)
target_compile_options(HOTD3MouseTests PRIVATE -UNDEBUG)
add_test(NAME HOTD3MouseTests COMMAND HOTD3MouseTests)
add_executable(HOTD3MouseSDLTests tests/mouse_sdl.cpp src/game/mouse_sdl.cpp sdk/runtime/core/log.cpp)
target_include_directories(HOTD3MouseSDLTests PRIVATE src sdk/runtime)
target_compile_definitions(HOTD3MouseSDLTests PRIVATE HOTD3_SDL_INPUT=1)
target_compile_options(HOTD3MouseSDLTests PRIVATE -UNDEBUG)
target_link_libraries(HOTD3MouseSDLTests PRIVATE SDL3::SDL3)
add_test(NAME HOTD3MouseSDLTests COMMAND HOTD3MouseSDLTests)

enable_testing()
find_package(Python3 3.11 REQUIRED COMPONENTS Interpreter)
add_test(NAME ChihiroImportTests COMMAND "${Python3_EXECUTABLE}" -m unittest discover -s tests -v)
set_tests_properties(ChihiroImportTests PROPERTIES WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
