# SPDX-FileCopyrightText: 2024-2026 Open Mobile Platform LLC <community@omp.ru>
# SPDX-License-Identifier: BSD-3-Clause

# CMAKE_SYSTEM_PROCESSOR - CPU architecture name (armv7l, aarch64, x86_64)
# CMAKE_BUILD_TYPE       - Build mode (debug, profile, release)
# PSDK_VERSION           - Build psdk exact version
# PSDK_MAJOR             - Build psdk major version

cmake_minimum_required(VERSION 3.10)

set(PROJECT_NAME objectbox_flutter_libs_aurora)
set(PLUGIN_NAME  objectbox_flutter_libs_aurora_platform_plugin)

project(${PROJECT_NAME} LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

set(CMAKE_CXX_FLAGS "-Wall -Wextra -Wno-psabi")
set(CMAKE_CXX_FLAGS_RELEASE "-O3")

if(${PSDK_MAJOR} LESS 5)
    message( FATAL_ERROR "Cannot build this project on Aurora version less than 5" )
endif()

add_library(${PLUGIN_NAME} SHARED 
    objectbox_flutter_libs_aurora_plugin.cpp
)

#################### objectbox
add_custom_command(TARGET ${PLUGIN_NAME} POST_BUILD
                   COMMAND ${CMAKE_COMMAND} -E copy
                   ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/${CMAKE_SYSTEM_PROCESSOR}/libobjectbox.so
                   ${ROOT_PROJECT_BINARY_DIR}/bundle/lib/libobjectbox.so)

####################

# Add client_wrapper source
include(AuroraClientWrapper)
ADD_CLIENT_WRAPPER_SOURCE(${PLUGIN_NAME})

set_target_properties(${PLUGIN_NAME} PROPERTIES CXX_VISIBILITY_PRESET hidden)

target_include_directories(${PLUGIN_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
target_compile_definitions(${PLUGIN_NAME} PRIVATE OBJECTBOX_FLUTTER_LIBS_AURORA_PLUGIN_IMPL)
