cmake_minimum_required(VERSION 3.16)

project(ukui-qml-style-helper)

set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

set(QT_MIN_VERSION "5.12.0")
set(KF5_MIN_VERSION "5.66.0")

find_package(Qt5Quick)

find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
    Widgets
    DBus
)
find_package(KF5Kirigami2 CONFIG REQUIRED COMPONENTS)
find_package(KF5Config CONFIG REQUIRED COMPONENTS)

find_package(PkgConfig REQUIRED)
pkg_check_modules(Qsettings REQUIRED gsettings-qt)
pkg_check_modules(FONTCONFIG REQUIRED fontconfig)
pkg_check_modules(GLIB2 REQUIRED glib-2.0 gio-2.0 )

set(EXTERNAL_LIBS "")

include_directories(${GLIB2_INCLUDE_DIRS})
include_directories(${Qsettings_INCLUDE_DIRS})
if (FONTCONFIG_FOUND)
    include_directories(${FONTCONFIG_INCLUDE_DIRS})
    link_directories(${FONTCONFIG_LIBRARY_DIRS})
endif()

file(GLOB_RECURSE HEADER_FILES
#    "kyquickpadding_p.h"
#    "KyIcon.h"
#    "kyquickstyleitem.h"
#    "kystylehelper.h"
    "qqc2styleplugin.h"
    "styleparameter/*.h"
    "../qt5-ukui-platformtheme/platform-theme-fontdata.h"
    "../ukui-styles/readconfig.h"
    )
file(GLOB_RECURSE SRC_FILES
#    "KyIcon.cpp"
#    "kyquickstyleitem.cpp"
#    "kystylehelper.cpp"
    "qqc2styleplugin.cpp"
    "styleparameter/*.cpp"
    "../qt5-ukui-platformtheme/platform-theme-fontdata.cpp"
    "../ukui-styles/readconfig.cpp"
    )
file(GLOB_RECURSE OTHER_FILES qmldir)

SOURCE_GROUP("Header Files" FILES ${HEADER_FILES})
SOURCE_GROUP("Source Files" FILES ${SRC_FILES})
SOURCE_GROUP("other files" FILES ${OTHER_FILES})

include_directories(../libqt5-ukui-style/)

add_library(ukui-qml-style-helper MODULE ${HEADER_FILES} ${SRC_FILES} ${OTHER_FILES})

target_link_libraries(ukui-qml-style-helper PRIVATE
    KF5::ConfigCore
    KF5::Kirigami2
    Qt5::Quick
    Qt5::Widgets
    Qt5::DBus
    gsettings-qt
    qt5-ukui-style
    glib-2.0
    ${FONTCONFIG_LIBRARIES}
    ${EXTERNAL_LIBS}
    )

if(UNIX)
    set(TARGET_PATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/qt5/qml/org/ukui/qqc2style/private/")

    MESSAGE("libukui-qml-style-helper TARGET_PATH: ${TARGET_PATH}")

    install(TARGETS ${PROJECT_NAME} DESTINATION ${TARGET_PATH})
    install(FILES ${OTHER_FILES} DESTINATION "${TARGET_PATH}")
endif()
