From 3d7edfc4ba27b27d18d55b79c618314d31065b13 Mon Sep 17 00:00:00 2001 From: Ilya Fedin Date: Sun, 20 Dec 2020 17:20:03 +0400 Subject: [PATCH] Add qt_static_plugins module --- external/qt/CMakeLists.txt | 2 + external/qt/qt_static_plugins/CMakeLists.txt | 43 +++++++++++++ .../qt_static_plugins/qt_static_plugins.cpp | 63 +++++++++++++++++++ 3 files changed, 108 insertions(+) create mode 100644 external/qt/qt_static_plugins/CMakeLists.txt create mode 100644 external/qt/qt_static_plugins/qt_static_plugins.cpp diff --git a/external/qt/CMakeLists.txt b/external/qt/CMakeLists.txt index 64031e2..1c004a1 100644 --- a/external/qt/CMakeLists.txt +++ b/external/qt/CMakeLists.txt @@ -7,6 +7,8 @@ add_library(external_qt INTERFACE IMPORTED GLOBAL) add_library(desktop-app::external_qt ALIAS external_qt) +add_subdirectory(qt_static_plugins) + if (DESKTOP_APP_USE_PACKAGED) target_link_libraries(external_qt INTERFACE diff --git a/external/qt/qt_static_plugins/CMakeLists.txt b/external/qt/qt_static_plugins/CMakeLists.txt new file mode 100644 index 0000000..09c96b6 --- /dev/null +++ b/external/qt/qt_static_plugins/CMakeLists.txt @@ -0,0 +1,43 @@ +# This file is part of Desktop App Toolkit, +# a set of libraries for developing nice desktop applications. +# +# For license and copyright information please follow this link: +# https://github.com/desktop-app/legal/blob/master/LEGAL + +add_library(external_qt_static_plugins OBJECT) +add_library(desktop-app::external_qt_static_plugins ALIAS external_qt_static_plugins) +init_target(external_qt_static_plugins "(external)") + +nice_target_sources(external_qt_static_plugins ${CMAKE_CURRENT_SOURCE_DIR} +PRIVATE + qt_static_plugins.cpp +) + +target_link_libraries(external_qt_static_plugins +PUBLIC + desktop-app::external_qt +) + +if (LINUX) + target_link_libraries(external_qt_static_plugins + PUBLIC + desktop-app::external_nimf_qt5 + desktop-app::external_qt5ct_support + ) + + if (NOT DESKTOP_APP_DISABLE_DBUS_INTEGRATION) + target_link_libraries(external_qt_static_plugins + PUBLIC + desktop-app::external_fcitx_qt5 + desktop-app::external_fcitx5_qt5 + desktop-app::external_hime_qt + ) + endif() + + if (NOT DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION) + target_link_libraries(external_qt_static_plugins + PUBLIC + desktop-app::external_materialdecoration + ) + endif() +endif() diff --git a/external/qt/qt_static_plugins/qt_static_plugins.cpp b/external/qt/qt_static_plugins/qt_static_plugins.cpp new file mode 100644 index 0000000..8ac2094 --- /dev/null +++ b/external/qt/qt_static_plugins/qt_static_plugins.cpp @@ -0,0 +1,63 @@ +/* +This file is part of Desktop App Toolkit, +a set of libraries for developing nice desktop applications. + +For license and copyright information please follow this link: +https://github.com/desktop-app/legal/blob/master/LEGAL +*/ +#include + +#ifndef DESKTOP_APP_USE_PACKAGED +Q_IMPORT_PLUGIN(QWebpPlugin) + +#if QT_VERSION >= QT_VERSION_CHECK(5, 8, 0) +Q_IMPORT_PLUGIN(QJpegPlugin) +Q_IMPORT_PLUGIN(QGifPlugin) +#endif // Qt 5.8.0 + +#ifdef Q_OS_WIN +Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin) +#elif defined Q_OS_MAC // Q_OS_WIN +Q_IMPORT_PLUGIN(QCocoaIntegrationPlugin) +Q_IMPORT_PLUGIN(QGenericEnginePlugin) +#elif defined Q_OS_UNIX // Q_OS_WIN | Q_OS_MAC +Q_IMPORT_PLUGIN(QXcbIntegrationPlugin) +Q_IMPORT_PLUGIN(QGenericEnginePlugin) +Q_IMPORT_PLUGIN(QComposePlatformInputContextPlugin) +Q_IMPORT_PLUGIN(QSvgIconPlugin) +#ifndef DESKTOP_APP_DISABLE_DBUS_INTEGRATION +Q_IMPORT_PLUGIN(QConnmanEnginePlugin) +Q_IMPORT_PLUGIN(QNetworkManagerEnginePlugin) +Q_IMPORT_PLUGIN(QIbusPlatformInputContextPlugin) +Q_IMPORT_PLUGIN(QXdgDesktopPortalThemePlugin) +#endif // !DESKTOP_APP_DISABLE_DBUS_INTEGRATION +#ifndef DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION +Q_IMPORT_PLUGIN(QWaylandEglClientBufferPlugin) +Q_IMPORT_PLUGIN(QWaylandIviShellIntegrationPlugin) +Q_IMPORT_PLUGIN(QWaylandWlShellIntegrationPlugin) +Q_IMPORT_PLUGIN(QWaylandXdgShellIntegrationPlugin) +Q_IMPORT_PLUGIN(QWaylandBradientDecorationPlugin) +Q_IMPORT_PLUGIN(QWaylandIntegrationPlugin) +Q_IMPORT_PLUGIN(QWaylandEglPlatformIntegrationPlugin) +#endif // !DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION +#endif // Q_OS_WIN | Q_OS_MAC | Q_OS_UNIX +#endif // !DESKTOP_APP_USE_PACKAGED + +#if defined Q_OS_UNIX && !defined Q_OS_MAC +#if !defined DESKTOP_APP_USE_PACKAGED || defined DESKTOP_APP_USE_PACKAGED_LAZY +Q_IMPORT_PLUGIN(NimfInputContextPlugin) +#ifndef DESKTOP_APP_DISABLE_DBUS_INTEGRATION +Q_IMPORT_PLUGIN(QFcitxPlatformInputContextPlugin) +Q_IMPORT_PLUGIN(QFcitx5PlatformInputContextPlugin) +Q_IMPORT_PLUGIN(QHimePlatformInputContextPlugin) +#endif // !DESKTOP_APP_DISABLE_DBUS_INTEGRATION +#ifndef DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION +Q_IMPORT_PLUGIN(QWaylandMaterialDecorationPlugin) +#endif // !DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION +#endif // !DESKTOP_APP_USE_PACKAGED || DESKTOP_APP_USE_PACKAGED_LAZY + +#if !defined DESKTOP_APP_USE_PACKAGED || defined DESKTOP_APP_USE_PACKAGED_LAZY_PLATFORMTHEMES +Q_IMPORT_PLUGIN(Qt5CTPlatformThemePlugin) +Q_IMPORT_PLUGIN(Qt5CTStylePlugin) +#endif // !DESKTOP_APP_USE_PACKAGED || DESKTOP_APP_USE_PACKAGED_LAZY_PLATFORMTHEMES +#endif // Q_OS_UNIX && !Q_OS_MAC