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

cmake_minimum_required(VERSION 3.10)

set(PROJECT_NAME flutter_onnxruntime_aurora)
set(PLUGIN_NAME  flutter_onnxruntime_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")

find_package(aurora_onnxruntime REQUIRED)
find_package(aurora_libspdlog REQUIRED)
find_package (Qt5 COMPONENTS Core DBus REQUIRED)

add_library(${PLUGIN_NAME} SHARED
    src/common_types.h
    src/flutter_onnxruntime_aurora_plugin.cpp
    src/flutter_onnxruntime_aurora_plugin.h
    src/session_manager.cpp
    src/session_manager.h
    src/tensor_manager.cpp
    src/tensor_manager.h
    src/utils.h
    src/value_conversion.h
)

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

set_target_properties(${PLUGIN_NAME} PROPERTIES CXX_VISIBILITY_PRESET hidden)
target_link_libraries(${PLUGIN_NAME} PUBLIC  Qt5::Core Qt5::DBus)

target_link_libraries(${PLUGIN_NAME} PRIVATE 
    aurora_libspdlog::aurora_libspdlog
)

target_link_libraries(${PLUGIN_NAME} PUBLIC 
    aurora_onnxruntime::aurora_onnxruntime
)

target_include_directories(${PLUGIN_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
target_include_directories(${PLUGIN_NAME} PRIVATE
    aurora_onnxruntime::aurora_onnxruntime
)

target_compile_definitions(${PLUGIN_NAME} PRIVATE FLUTTER_ONNXRUNTIME_AURORA_PLUGIN_IMPL)
