cmake_minimum_required(VERSION 3.16)

project(QtGTKPlatformTheme)

set(QT_MIN_VERSION "6.10.0")
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(QT_VERSION_MAJOR "6")

find_package(Qt${QT_VERSION_MAJOR} ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
    Core
    CorePrivate
    DBus
    Gui
    GuiPrivate
    Widgets
)

if (NOT QT_PLUGINS_DIR)
    set(QT_PLUGINS_DIR ${QT6_INSTALL_PLUGINS})
endif()

find_package(PkgConfig REQUIRED)
pkg_check_modules(GTK+3 REQUIRED IMPORTED_TARGET gtk+-3.0)


find_package(X11 REQUIRED)

set(gtk_theme_SRCS
    main.cpp
    qgtk3dialoghelpers.cpp qgtk3dialoghelpers.h
    qgtk3theme.cpp qgtk3theme.h
    qgtk3interface.cpp qgtk3interface_p.h
    qgtk3storage.cpp qgtk3storage_p.h
    qgtk3json.cpp qgtk3json_p.h
)

add_library(qgtk3 MODULE ${gtk_theme_SRCS})
target_compile_definitions(qgtk3 PRIVATE -DGDK_VERSION_MIN_REQUIRED=GDK_VERSION_3_6)

target_link_libraries(qgtk3
    PkgConfig::GTK+3
    Qt${QT_VERSION_MAJOR}::Core
    Qt${QT_VERSION_MAJOR}::CorePrivate
    Qt${QT_VERSION_MAJOR}::Gui
    Qt${QT_VERSION_MAJOR}::GuiPrivate
    Qt${QT_VERSION_MAJOR}::DBus
)

set_property(TARGET qgtk3 PROPERTY AUTOMOC ON)

install(TARGETS qgtk3 DESTINATION ${QT_PLUGINS_DIR}/platformthemes)

