cmake_minimum_required(VERSION 3.16)
project(ukui-panel-items)

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

#find QT modules
find_package(QT NAMES Qt6 Qt5 COMPONENTS Core Gui Qml Widgets Quick REQUIRED)
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Qml Gui Widgets Quick REQUIRED)
find_package(KF5WindowSystem REQUIRED)

#find other modules
find_package(PkgConfig REQUIRED)
set(PANEL_ITEM_PLUGIN_EXTERNAL_LIBS "")
set(PANEL_ITEM_PLUGIN_PC_PKGS gsettings-qt)
foreach(external_lib IN ITEMS ${PUBLIC_ITEM_PLUGIN_PC_PKGS})
    pkg_check_modules(${external_lib} REQUIRED IMPORTED_TARGET ${external_lib})
    if(${${external_lib}_FOUND})
        include_directories(${${external_lib}_INCLUDE_DIRS})
        link_directories(${${external_lib}_LIBRARY_DIRS})
        list(APPEND PUBLIC_ITEM_PLUGIN_EXTERNAL_LIBS PkgConfig::${external_lib})
    endif()
endforeach()

include_directories(.)
include_directories(qml)

set(PLUGIN_SRCS
        panel-public-plugin.h
        panel-public-plugin.cpp
        theme-palette.h
        theme-palette.cpp
        theme-icon.h
        theme-icon.cpp
        tooltip.h
        tooltip.cpp
        )
add_library(${PROJECT_NAME} SHARED ${PLUGIN_SRCS})

set(PLUGIN_IMPORT_URI "org.ukui.panel.items")
set(PLUGIN_INSTALL_PATH "/usr/lib/${CMAKE_LIBRARY_ARCHITECTURE}/qt5/qml/org/ukui/panel/items")
target_compile_definitions(${PROJECT_NAME} PRIVATE PLUGIN_IMPORT_URI="${PLUGIN_IMPORT_URI}")

target_link_libraries(${PROJECT_NAME}
        PRIVATE
        Qt${QT_VERSION_MAJOR}::Core
        Qt${QT_VERSION_MAJOR}::Qml
        Qt${QT_VERSION_MAJOR}::Gui
        Qt${QT_VERSION_MAJOR}::Quick
        Qt${QT_VERSION_MAJOR}::Gui_EGL
        Qt${QT_VERSION_MAJOR}::GuiPrivate
        Qt${QT_VERSION_MAJOR}::Widgets
        KF5::WindowSystem
        ${PUBLIC_ITEM_PLUGIN_EXTERNAL_LIBS}
    )

install(DIRECTORY "qml" DESTINATION "${PLUGIN_INSTALL_PATH}")
install(FILES "qmldir" DESTINATION "${PLUGIN_INSTALL_PATH}")
install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION ${PLUGIN_INSTALL_PATH})


