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()