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