From ac96d08b9d0900a8e368c2e72c86190335480911 Mon Sep 17 00:00:00 2001 From: Albert Astals Cid Date: Mon, 11 Feb 2019 16:27:26 +0100 Subject: cmake: find gtk3 and build the gtk3 platformtheme Change-Id: I7db7321a2fd5ea0eda1924f3dece3b1c86d87d10 Reviewed-by: Tobias Hunger --- cmake/FindGTK3.cmake | 3 +++ src/plugins/CMakeLists.txt | 1 + src/plugins/platformthemes/CMakeLists.txt | 10 +++++++++ src/plugins/platformthemes/gtk3/CMakeLists.txt | 29 ++++++++++++++++++++++++++ src/widgets/configure.cmake | 4 +++- util/cmake/configurejson2cmake.py | 1 + 6 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 cmake/FindGTK3.cmake create mode 100644 src/plugins/platformthemes/CMakeLists.txt create mode 100644 src/plugins/platformthemes/gtk3/CMakeLists.txt diff --git a/cmake/FindGTK3.cmake b/cmake/FindGTK3.cmake new file mode 100644 index 0000000000..f4476c167b --- /dev/null +++ b/cmake/FindGTK3.cmake @@ -0,0 +1,3 @@ +include(FindPkgConfig) + +pkg_check_modules(GTK3 "gtk+-3.0 >= 3.6" IMPORTED_TARGET) diff --git a/src/plugins/CMakeLists.txt b/src/plugins/CMakeLists.txt index 6ff444a333..49a3e45b96 100644 --- a/src/plugins/CMakeLists.txt +++ b/src/plugins/CMakeLists.txt @@ -1,6 +1,7 @@ if(QT_FEATURE_gui) add_subdirectory(imageformats) add_subdirectory(platforms) + add_subdirectory(platformthemes) if (NOT ANDROID AND QT_FEATURE_library) add_subdirectory(generic) diff --git a/src/plugins/platformthemes/CMakeLists.txt b/src/plugins/platformthemes/CMakeLists.txt new file mode 100644 index 0000000000..5c65be8ce7 --- /dev/null +++ b/src/plugins/platformthemes/CMakeLists.txt @@ -0,0 +1,10 @@ +# Generated from platformthemes.pro. + +if (QT_FEATURE_dbus AND QT_FEATURE_regularexpression) +# TODO add_subdirectory(xdgdesktopportal) +endif() + +if (QT_FEATURE_widgets AND QT_FEATURE_gtk3) + add_subdirectory(gtk3) +endif() + diff --git a/src/plugins/platformthemes/gtk3/CMakeLists.txt b/src/plugins/platformthemes/gtk3/CMakeLists.txt new file mode 100644 index 0000000000..18bf562970 --- /dev/null +++ b/src/plugins/platformthemes/gtk3/CMakeLists.txt @@ -0,0 +1,29 @@ +# Generated from gtk3.pro. + +find_package(GTK3) +find_package(X11) + +##################################################################### +## qgtk3 Plugin: +##################################################################### + +add_qt_plugin(qgtk3 + TYPE platformthemes + SOURCES + main.cpp + qgtk3dialoghelpers.cpp qgtk3dialoghelpers.h + qgtk3menu.cpp qgtk3menu.h + qgtk3theme.cpp qgtk3theme.h + DEFINES + GDK_VERSION_MIN_REQUIRED=GDK_VERSION_3_6 + LIBRARIES + Qt::CorePrivate + Qt::GuiPrivate + Qt::ThemeSupportPrivate + PkgConfig::GTK3 + X11::X11 + # CONFIG = "X11" + # PLUGIN_CLASS_NAME = "QGtk3ThemePlugin" + # PLUGIN_EXTENDS = "-" + # _LOADED = "qt_plugin" +) diff --git a/src/widgets/configure.cmake b/src/widgets/configure.cmake index 2c828a6711..f703a03b79 100644 --- a/src/widgets/configure.cmake +++ b/src/widgets/configure.cmake @@ -6,6 +6,8 @@ #### Libraries +find_package(GTK3) +set_package_properties(GTK3 PROPERTIES TYPE OPTIONAL) #### Tests @@ -17,7 +19,7 @@ qt_feature("gtk3" PRIVATE LABEL "GTK+" AUTODETECT NOT APPLE - CONDITION QT_FEATURE_glib AND libs.gtk3 OR FIXME + CONDITION QT_FEATURE_glib AND GTK3_FOUND ) qt_feature("style_fusion" PRIVATE LABEL "Fusion" diff --git a/util/cmake/configurejson2cmake.py b/util/cmake/configurejson2cmake.py index c26a90d4f5..2d635e0c8a 100755 --- a/util/cmake/configurejson2cmake.py +++ b/util/cmake/configurejson2cmake.py @@ -57,6 +57,7 @@ def map_library(lib: str) -> Union[str, LibraryMapping, List[str]]: 'gbm': 'gbm', 'glib': 'GLIB2', 'gnu_iconv': None, + 'gtk3': 'GTK3', 'harfbuzz': 'harfbuzz', 'host_dbus': None, 'icu': ['ICU', 'COMPONENTS', 'i18n', 'uc', 'data'], -- cgit v1.2.3