cmake_minimum_required(VERSION 3.22)
project(FrameXrCompat LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_library(compat_logic INTERFACE)
target_include_directories(compat_logic INTERFACE . vendor)
if(ANDROID)
  add_library(XrApiLayer_FRAME_compat SHARED layer.cpp)
  target_link_libraries(XrApiLayer_FRAME_compat PRIVATE compat_logic log)
  target_compile_definitions(XrApiLayer_FRAME_compat PRIVATE XR_USE_PLATFORM_ANDROID XR_NO_PROTOTYPES)
  target_compile_options(XrApiLayer_FRAME_compat PRIVATE -O2 -fvisibility=hidden -Wall -Wextra -Werror)
  target_link_options(XrApiLayer_FRAME_compat PRIVATE -Wl,-z,max-page-size=16384 -Wl,--no-undefined -Wl,--exclude-libs,ALL -Wl,-s)
else()
  enable_testing()
  add_executable(compat_tests tests/compat_tests.cpp)
  target_link_libraries(compat_tests PRIVATE compat_logic)
  target_compile_options(compat_tests PRIVATE -Wall -Wextra -Werror)
  add_test(NAME compat_logic COMMAND compat_tests)
  add_executable(dispatch_tests tests/dispatch_tests.cpp)
  target_link_libraries(dispatch_tests PRIVATE compat_logic)
  target_include_directories(dispatch_tests PRIVATE tests/shims)
  target_compile_definitions(dispatch_tests PRIVATE XR_USE_PLATFORM_ANDROID XR_NO_PROTOTYPES)
  target_compile_options(dispatch_tests PRIVATE -Wall -Wextra -Werror)
  add_test(NAME layer_dispatch COMMAND dispatch_tests)
endif()
