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

cmake_minimum_required(VERSION 3.10)
set(PROJECT_NAME "video_player_aurora")
# This value is used when generating builds using this plugin, so it must
# not be changed
set(PLUGIN_NAME "video_player_aurora_platform_plugin")

project(${PROJECT_NAME} LANGUAGES CXX)

include(FetchContent)

add_library(${PLUGIN_NAME} SHARED
  "fl_multimedia_api.cc"
  "fl_multimedia_api.h"
  "plugin.cc"
  "video_player.cc"
  "video_player.h"
)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(PkgConfig REQUIRED)
find_package(flmultimedia REQUIRED)

pkg_check_modules(GLES REQUIRED IMPORTED_TARGET glesv2)

include_directories(
  ${GLIB_INCLUDE_DIRS}
  ${GSTREAMER_INCLUDE_DIRS}
  ${CMAKE_CURRENT_SOURCE_DIR}
)

link_directories(
  ${GLIB_LIBRARY_DIRS}
  ${GSTREAMER_LIBRARY_DIRS}
)

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

# 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 PkgConfig::GLES)
target_link_libraries(${PLUGIN_NAME} PRIVATE flmultimedia::flmultimedia)

target_include_directories(${PLUGIN_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/pigeon)
target_include_directories(${PLUGIN_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
target_include_directories(${PLUGIN_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include/${PROJECT_NAME})
target_include_directories(${PLUGIN_NAME} PRIVATE flmultimedia::flmultimedia)

target_compile_definitions(${PLUGIN_NAME} PRIVATE PLUGIN_IMPL)
