cmake_minimum_required(VERSION 3.22) project(ipin_vr_poc VERSION 1 LANGUAGES C CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) # ── Paths into ovr_sdk/ (one directory above app/) ─────────────────────────── set(OVR_SDK_ROOT "${CMAKE_SOURCE_DIR}/../ovr_sdk") set(OPENXR_INCLUDE "${OVR_SDK_ROOT}/OpenXR/Include") set(OPENXR_LIB_DIR "${CMAKE_SOURCE_DIR}/../libs/arm64-v8a") if (NOT EXISTS "${OPENXR_INCLUDE}/openxr/openxr.h") message(FATAL_ERROR "openxr.h not found at ${OPENXR_INCLUDE}/openxr/openxr.h\n" "See vr-poc/README.md §'Wymagane pliki SDK' for setup instructions.") endif() # ── android_native_app_glue (from NDK) ─────────────────────────────────────── add_library(native_app_glue STATIC ${ANDROID_NDK}/sources/android/native_app_glue/android_native_app_glue.c ) target_include_directories(native_app_glue PUBLIC ${ANDROID_NDK}/sources/android/native_app_glue ) target_link_libraries(native_app_glue PUBLIC android log) # ── OpenXR loader (prebuilt, from Meta OVR SDK → libs/arm64-v8a/) ───────────── add_library(openxr_loader SHARED IMPORTED) set_target_properties(openxr_loader PROPERTIES IMPORTED_LOCATION "${OPENXR_LIB_DIR}/libopenxr_loader.so" ) # ── NDK system libraries ────────────────────────────────────────────────────── find_library(LIB_ANDROID android) find_library(LIB_LOG log) find_library(LIB_EGL EGL) find_library(LIB_GLES3 GLESv3) # ── Main native library ─────────────────────────────────────────────────────── add_library(ipin_vr_poc SHARED src/main/cpp/main.cpp ) target_include_directories(ipin_vr_poc PRIVATE ${OPENXR_INCLUDE} ${ANDROID_NDK}/sources/android/native_app_glue ) target_compile_definitions(ipin_vr_poc PRIVATE XR_USE_PLATFORM_ANDROID XR_USE_GRAPHICS_API_OPENGL_ES ) target_link_libraries(ipin_vr_poc PRIVATE native_app_glue openxr_loader ${LIB_ANDROID} ${LIB_LOG} ${LIB_EGL} ${LIB_GLES3} ) # Force export of android_main (entry point for NativeActivity) target_link_options(ipin_vr_poc PRIVATE "-Wl,--undefined=android_main")