ipin-vr/vr-poc/app/CMakeLists.txt

65 lines
2.4 KiB
CMake
Raw Permalink Normal View History

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