# SPDX-FileCopyrightText: Copyright 2024-2025 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 flutter_downloader)
set(PLUGIN_NAME flutter_downloader_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(PkgConfig REQUIRED)

pkg_check_modules(RuntimeManager REQUIRED IMPORTED_TARGET runtime-manager-qt5)
pkg_check_modules(Notifications REQUIRED IMPORTED_TARGET nemonotifications-qt5)
pkg_check_modules(SQLite REQUIRED IMPORTED_TARGET sqlite3)

find_package(CURL REQUIRED)
find_package(Qt5 COMPONENTS Core REQUIRED)

add_library(${PLUGIN_NAME} SHARED
    src/background_channel.cc
    src/enqueue_channel.cc
    src/plugin.cc
    src/debugger.cc

    src/file_downloader/database.cc
    src/file_downloader/file_downloader.cc
    src/file_downloader/file_opener.cc

    src/thumbnails.cc
    src/thumbnails.h
    src/thumbnails/construction.h
    src/thumbnails/man.h
    src/thumbnails/party.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} PRIVATE
    aurora_embedder::aurora_embedder
    CURL::libcurl
    Qt5::Core
    PkgConfig::RuntimeManager
    PkgConfig::SQLite
    PkgConfig::Notifications
)

target_include_directories(${PLUGIN_NAME} PRIVATE
    ${SQLite3_INCLUDE_DIRS}
    ${CURL_INCLUDE_DIRS}
)

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