cmake_minimum_required(VERSION 3.25)
project(MaxSpinCharacterLauncherContracts C)
if(NOT WIN32)
  message(FATAL_ERROR "Native Windows required")
endif()
find_package(Python3 REQUIRED COMPONENTS Interpreter)
enable_testing()
add_executable(character_launcher_contract contract.c)
if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/../src/character_launcher.c")
  target_sources(character_launcher_contract PRIVATE ../src/character_launcher.c ../src/character_launcher_windows.c ../src/character_command.c)
else()
  target_compile_definitions(character_launcher_contract PRIVATE MISSING_IMPLEMENTATION=1)
endif()
target_include_directories(character_launcher_contract PRIVATE ../src "${CMAKE_CURRENT_BINARY_DIR}")
target_link_options(character_launcher_contract PRIVATE -Wl,--stack,8388608)
file(TO_CMAKE_PATH "${Python3_EXECUTABLE}" fixture_python)
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/test_python.h" "#define TEST_PYTHON L\"${fixture_python}\"\n")
add_test(NAME character_launcher_contract COMMAND character_launcher_contract)
set_tests_properties(character_launcher_contract PROPERTIES TIMEOUT 60)
