cmake_minimum_required(VERSION 3.5)

project(plugin-panel LANGUAGES CXX)

set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(Qt5 COMPONENTS Core Widgets LinguistTools REQUIRED)
find_package(PkgConfig)

pkg_search_module(SDK_WIDGET REQUIRED kysdk-qtwidgets)
pkg_check_modules(Gsetting REQUIRED gsettings-qt)
pkg_check_modules(GIO2 REQUIRED gio-2.0)
pkg_check_modules(GIOUNIX2 REQUIRED gio-unix-2.0)

#加载翻译文件
file(GLOB TS_FILES "${PROJECT_SOURCE_DIR}/translation/*.ts" )
#更新翻译文件并创建.qm文件
qt5_create_translation(QM_FILES ${PROJECT_SOURCE_DIR} ${TS_FILES})

add_library(plugin-panel SHARED
            ${QM_FILES}
            ukccplugin.h ukccplugin.cpp
            generalsettings.h generalsettings.cpp
            alwaysdisplayonpanel.h alwaysdisplayonpanel.cpp
 )
include_directories(${SDK_WIDGET_INCLUDE_DIRS}
    ${Gsetting_INCLUDE_DIRS}
    ${GIO2_INCLUDE_DIRS}
    ${GIOUNIX2_INCLUDE_DIRS})
target_link_directories(plugin-panel PRIVATE ${SDK_WIDGET_LIBRARY_DIRS})
target_link_libraries(plugin-panel PRIVATE Qt5::Core Qt5::Widgets Qt5::Gui -lukcc
    ${Gsetting_LIBRARIES}
    ${GIO2_LIBRARIES}
    ${GIOUNIX2_LIBRARIES}
    ${SDK_WIDGET_LIBRARIES}
    )

target_compile_definitions(plugin-panel PRIVATE UNTITLED5_LIBRARY)

get_target_property(QT_QMAKE_EXECUTABLE ${Qt5Core_QMAKE_EXECUTABLE} IMPORTED_LOCATION)
macro(query_qmake args output)
    exec_program(${QT_QMAKE_EXECUTABLE} ARGS -query ${args} OUTPUT_VARIABLE ${output} RETURN_VALUE exitCode)
    if(NOT ${exitCode} EQUAL 0)
        message(FATAL_ERROR "exec ${QT_QMAKE_EXECUTABLE} failed.")
    endif()
endmacro()
query_qmake("QT_INSTALL_LIBS" QT_INSTALL_LIBS)
#安装目标文件libplugin-panel.so
install(TARGETS ${PROJECT_NAME} DESTINATION ${QT_INSTALL_LIBS}/ukui-control-center)
message(STATUS ${QT_INSTALL_LIBS})
#安装翻译文件
set(UKCCPANEL_TRANSLATION_DIR "${PACKAGE_DATA_DIR}/plugin-ukccpanel/translation")
add_compile_definitions(UKCCPANEL_TRANSLATION_DIR="${UKCCPANEL_TRANSLATION_DIR}")
install(FILES ${QM_FILES} ${TS_FILES} DESTINATION ${UKCCPANEL_TRANSLATION_DIR})


