cmake_minimum_required(VERSION 3.20)
project(MaxSpinUILayoutContracts C)
if(NOT WIN32)
  message(FATAL_ERROR "This contract exercises native Windows file and crypto APIs")
endif()
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)
get_filename_component(MAXSPIN_ROOT "${CMAKE_CURRENT_LIST_DIR}/../../.." ABSOLUTE)
add_executable(ui_layout_windows_contract ../tests/ui_layout_windows_contract.c ../src/ui_layout_windows.c ../src/ui_layout_overlay.c ../src/character_windows.c)
target_include_directories(ui_layout_windows_contract PRIVATE ../src "${MAXSPIN_ROOT}/native-linux/src")
target_link_libraries(ui_layout_windows_contract PRIVATE advapi32 shell32)
target_link_options(ui_layout_windows_contract PRIVATE -municode)
set(MAXSPIN_TEST_ASSETS "" CACHE PATH "Original private game directory")
set(MAXSPIN_TEST_UI_LAYOUT "" CACHE PATH "Prepared private ui-layout-v1 directory")
if(MAXSPIN_TEST_ASSETS AND MAXSPIN_TEST_UI_LAYOUT)
  enable_testing()
  add_test(NAME ui_layout_windows_contract COMMAND ui_layout_windows_contract "${MAXSPIN_TEST_ASSETS}" "${MAXSPIN_TEST_UI_LAYOUT}")
  set_tests_properties(ui_layout_windows_contract PROPERTIES TIMEOUT 60)
endif()
