# SPDX-FileCopyrightText: 2024 UnionTech Software Technology Co., Ltd.
#
# SPDX-License-Identifier: CC0-1.0

cmake_minimum_required(VERSION 3.16)

set(PLUGIN_NAME "screen-keep-alive")
project(${PLUGIN_NAME})

set(DCI_FILES
    resources/screen-keep-alive.dci
    resources/screen-keep-alive-dark.dci
)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)

set(DTL_BUILD_WITH_QT6 ON CACHE BOOL "Build with Qt6")

if (DTL_BUILD_WITH_QT6)
    set(QT_VERSION_MAJOR 6)
    set(DTK_VERSION_MAJOR 6)
else()
    set(QT_VERSION_MAJOR 5)
    set(DTK_VERSION_MAJOR "")
endif()

set(REQUIRED_QT_VERSION "")

# Sources files
set(SRCS
    screenkeepaliveplugin.cpp
    screenkeepaliveplugin.h
    screenkeepaliveitem.cpp
    screenkeepaliveitem.h
    screenkeepalivecontroller.cpp
    screenkeepalivecontroller.h
    quickpanelwidget.cpp
    quickpanelwidget.h
)

file(GLOB_RECURSE SRCS
    "*.h"
    "*.cpp"
    "../widgets/*.h"
    "../widgets/*.cpp"
    "../common/*.h"
    "../common/*.cpp"
)

find_package(PkgConfig REQUIRED)
find_package(Qt${QT_VERSION_MAJOR} ${REQUIRED_QT_VERSION} REQUIRED COMPONENTS Widgets Svg DBus)
find_package(Dtk${DTK_VERSION_MAJOR} REQUIRED COMPONENTS Widget)

add_definitions("${QT_DEFINITIONS} -DQT_PLUGIN -DDDE_DOCK_TRANSLATION_DIR=\\\"${CMAKE_INSTALL_DATADIR}\\\"")
add_library(${PLUGIN_NAME} SHARED ${SRCS} resources/screen_keep_alive.qrc)
set_target_properties(${PLUGIN_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ../)
target_include_directories(${PLUGIN_NAME} PUBLIC
    ../../../interfaces
    ../widgets
    ../common
)
target_link_libraries(${PLUGIN_NAME} PRIVATE
    Dtk${DTK_VERSION_MAJOR}::Widget
    Qt${QT_VERSION_MAJOR}::Widgets
    Qt${QT_VERSION_MAJOR}::Svg
    Qt${QT_VERSION_MAJOR}::DBus
)

install(TARGETS ${PLUGIN_NAME} LIBRARY DESTINATION lib/dde-dock/plugins)
install(FILES ${DCI_FILES} DESTINATION share/dde-dock/icons/dcc-setting)
dtk_add_config_meta_files(APPID org.deepin.dde.dock FILES ../configs/org.deepin.dde.dock.plugin.screen-keep-alive.json) # compat
dtk_add_config_meta_files(APPID org.deepin.dde.tray-loader FILES ../configs/org.deepin.dde.dock.plugin.screen-keep-alive.json)
dtk_add_config_meta_files(APPID org.deepin.dde.dock FILES ../configs/org.deepin.dde.dock.plugin.quick-panel.json) # compat
dtk_add_config_meta_files(APPID org.deepin.dde.tray-loader FILES ../configs/org.deepin.dde.dock.plugin.quick-panel.json)
