Files
MosisVR/Packages/com.omarator.mosissdk/Plugins/Android/cpp/CMakeLists.txt
2026-01-17 08:46:11 +01:00

73 lines
2.2 KiB
CMake

cmake_minimum_required(VERSION 3.22.1)
project("MyNativePlugin")
find_library(log-lib log)
find_library(vulkan-lib vulkan)
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
message(STATUS "AAA-${UNITY_ROOT}")
message(STATUS "AAA-${UNITY_PROJECT_DIR}")
message(STATUS "AAA-${ANDROID_SDK}")
set(PLUGIN_API "${UNITY_ROOT}/PluginAPI")
set(BINDER_DIR "${ANDROID_SDK}/platforms/android-36/optional/libbinder_ndk_cpp")
set(SHARED_SRC_DIR "${UNITY_PROJECT_DIR}/../MosisService/src/main/cpp/")
set(AIDL_EXE "${ANDROID_SDK}/build-tools/36.1.0/aidl.exe")
set(AIDL_BASE_ARGS --lang=ndk --min_sdk_version=36
-o ${CMAKE_CURRENT_BINARY_DIR} -h ${CMAKE_CURRENT_BINARY_DIR} -I ..\\aidl)
add_custom_command(
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/com/omixlab/mosis/IMosisService.cpp"
COMMAND ${AIDL_EXE} ${AIDL_BASE_ARGS} ..\\aidl\\com\\omixlab\\mosis\\IMosisService.aidl
DEPENDS ../aidl/com/omixlab/mosis/IMosisService.aidl
WORKING_DIRECTORY ${SHARED_SRC_DIR}
VERBATIM
)
add_custom_command(
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/com/omixlab/mosis/IMosisListener.cpp"
COMMAND ${AIDL_EXE} ${AIDL_BASE_ARGS} ..\\aidl\\com\\omixlab\\mosis\\IMosisListener.aidl
DEPENDS ../aidl/com/omixlab/mosis/IMosisListener.aidl
WORKING_DIRECTORY ${SHARED_SRC_DIR}
VERBATIM
)
add_library(my_native_lib SHARED
my_native_code.cpp
opengl_backend.cpp
vulkan_backend.cpp
${CMAKE_CURRENT_BINARY_DIR}/com/omixlab/mosis/IMosisService.cpp
${CMAKE_CURRENT_BINARY_DIR}/com/omixlab/mosis/IMosisListener.cpp
${SHARED_SRC_DIR}/logger.cpp
${SHARED_SRC_DIR}/external_texture.cpp
${SHARED_SRC_DIR}/render_target.cpp
${SHARED_SRC_DIR}/glad/src/egl.c
${SHARED_SRC_DIR}/glad/src/gles2.c
)
target_link_libraries(my_native_lib
${log-lib}
${vulkan-lib}
binder_ndk
EGL
GLESv2
nativewindow
)
target_include_directories(my_native_lib PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}
${SHARED_SRC_DIR}
${SHARED_SRC_DIR}/glad/include
${CMAKE_CURRENT_BINARY_DIR}
${BINDER_DIR}
${PLUGIN_API}
)
# Vulkan support definitions
target_compile_definitions(my_native_lib PRIVATE
VK_USE_PLATFORM_ANDROID_KHR
MOSIS_VULKAN_SUPPORT=1
)