From 9615515b069a1d3174fc45f9de69a23b616b80b3 Mon Sep 17 00:00:00 2001 From: Ilya Fedin Date: Mon, 8 Aug 2022 12:34:32 +0400 Subject: [PATCH] Use version-less Qt targets and functions whenever possible --- external/fcitx5_qt/CMakeLists.txt | 7 +- .../fcitx5_qt_dbusaddons/CMakeLists.txt | 16 +- external/fcitx_qt5/CMakeLists.txt | 22 +- external/qt/CMakeLists.txt | 237 +++++++-------- external/qt/package.cmake | 31 +- external/qt/qt6/CMakeLists.txt | 281 ------------------ target_prepare_qrc.cmake | 7 +- 7 files changed, 133 insertions(+), 468 deletions(-) delete mode 100644 external/qt/qt6/CMakeLists.txt diff --git a/external/fcitx5_qt/CMakeLists.txt b/external/fcitx5_qt/CMakeLists.txt index 8827162..b002d59 100644 --- a/external/fcitx5_qt/CMakeLists.txt +++ b/external/fcitx5_qt/CMakeLists.txt @@ -15,12 +15,7 @@ add_library(desktop-app::external_fcitx5_qt ALIAS external_fcitx5_qt) init_target(external_fcitx5_qt "(external)") set(fcitx5_qt_loc ${third_party_loc}/fcitx5-qt) - -if (DESKTOP_APP_QT6) - set(fcitx5_qt_src ${fcitx5_qt_loc}/qt6/platforminputcontext) -else() - set(fcitx5_qt_src ${fcitx5_qt_loc}/qt5/platforminputcontext) -endif() +set(fcitx5_qt_src ${fcitx5_qt_loc}/qt${QT_VERSION_MAJOR}/platforminputcontext) set_target_properties(external_fcitx5_qt PROPERTIES AUTOMOC ON) set(FCITX5_QT_EXTRA_PLUGIN_NAME "") diff --git a/external/fcitx5_qt/fcitx5_qt_dbusaddons/CMakeLists.txt b/external/fcitx5_qt/fcitx5_qt_dbusaddons/CMakeLists.txt index 53370f1..c8e3ce1 100644 --- a/external/fcitx5_qt/fcitx5_qt_dbusaddons/CMakeLists.txt +++ b/external/fcitx5_qt/fcitx5_qt_dbusaddons/CMakeLists.txt @@ -15,12 +15,7 @@ add_library(desktop-app::external_fcitx5_qt_dbusaddons ALIAS external_fcitx5_qt_ init_target(external_fcitx5_qt_dbusaddons "(external)") set(fcitx5_qt_loc ${third_party_loc}/fcitx5-qt) - -if (DESKTOP_APP_QT6) - set(fcitx5_qt_dbusaddons_src ${fcitx5_qt_loc}/qt6/dbusaddons) -else() - set(fcitx5_qt_dbusaddons_src ${fcitx5_qt_loc}/qt5/dbusaddons) -endif() +set(fcitx5_qt_dbusaddons_src ${fcitx5_qt_loc}/qt${QT_VERSION_MAJOR}/dbusaddons) set_target_properties(external_fcitx5_qt_dbusaddons PROPERTIES AUTOMOC ON) @@ -40,12 +35,7 @@ PRIVATE ) include(GenerateExportHeader) - -if (DESKTOP_APP_QT6) - generate_export_header(external_fcitx5_qt_dbusaddons BASE_NAME Fcitx5Qt6DBusAddons) -else() - generate_export_header(external_fcitx5_qt_dbusaddons BASE_NAME Fcitx5Qt5DBusAddons) -endif() +generate_export_header(external_fcitx5_qt_dbusaddons BASE_NAME Fcitx5Qt${QT_VERSION_MAJOR}DBusAddons) target_include_directories(external_fcitx5_qt_dbusaddons PUBLIC @@ -53,7 +43,7 @@ PUBLIC "${CMAKE_CURRENT_BINARY_DIR}" ) -if (NOT DESKTOP_APP_QT6) +if (QT_VERSION_MAJOR EQUAL 5) target_compile_definitions(external_fcitx5_qt_dbusaddons PRIVATE FCITX5QT5DBUSADDONS_STATIC_DEFINE diff --git a/external/fcitx_qt5/CMakeLists.txt b/external/fcitx_qt5/CMakeLists.txt index 6cc0312..7f4a8b5 100644 --- a/external/fcitx_qt5/CMakeLists.txt +++ b/external/fcitx_qt5/CMakeLists.txt @@ -15,12 +15,7 @@ add_library(desktop-app::external_fcitx_qt5 ALIAS external_fcitx_qt5) init_target(external_fcitx_qt5 "(external)") set(fcitx_qt5_loc ${third_party_loc}/fcitx-qt5) - -if (DESKTOP_APP_QT6) - set(fcitx_qt5_src ${fcitx_qt5_loc}/qt6/platforminputcontext) -else() - set(fcitx_qt5_src ${fcitx_qt5_loc}/qt5/platforminputcontext) -endif() +set(fcitx_qt5_src ${fcitx_qt5_loc}/qt${QT_VERSION_MAJOR}/platforminputcontext) set_target_properties(external_fcitx_qt5 PROPERTIES AUTOMOC ON) @@ -43,17 +38,10 @@ INCLUDE ${fcitx_qt5_src}/fcitxqtdbustypes.h) set_source_files_properties(${fcitx_qt5_src}/org.fcitx.Fcitx.InputMethod1.xml PROPERTIES INCLUDE ${fcitx_qt5_src}/fcitxqtdbustypes.h) -if (DESKTOP_APP_QT6) - qt6_add_dbus_interface(fcitx_qt5_adaptors ${fcitx_qt5_src}/org.fcitx.Fcitx.InputContext.xml inputcontextproxy) - qt6_add_dbus_interface(fcitx_qt5_adaptors ${fcitx_qt5_src}/org.fcitx.Fcitx.InputContext1.xml inputcontext1proxy) - qt6_add_dbus_interface(fcitx_qt5_adaptors ${fcitx_qt5_src}/org.fcitx.Fcitx.InputMethod.xml inputmethodproxy) - qt6_add_dbus_interface(fcitx_qt5_adaptors ${fcitx_qt5_src}/org.fcitx.Fcitx.InputMethod1.xml inputmethod1proxy) -else() - qt5_add_dbus_interface(fcitx_qt5_adaptors ${fcitx_qt5_src}/org.fcitx.Fcitx.InputContext.xml inputcontextproxy) - qt5_add_dbus_interface(fcitx_qt5_adaptors ${fcitx_qt5_src}/org.fcitx.Fcitx.InputContext1.xml inputcontext1proxy) - qt5_add_dbus_interface(fcitx_qt5_adaptors ${fcitx_qt5_src}/org.fcitx.Fcitx.InputMethod.xml inputmethodproxy) - qt5_add_dbus_interface(fcitx_qt5_adaptors ${fcitx_qt5_src}/org.fcitx.Fcitx.InputMethod1.xml inputmethod1proxy) -endif() +qt_add_dbus_interface(fcitx_qt5_adaptors ${fcitx_qt5_src}/org.fcitx.Fcitx.InputContext.xml inputcontextproxy) +qt_add_dbus_interface(fcitx_qt5_adaptors ${fcitx_qt5_src}/org.fcitx.Fcitx.InputContext1.xml inputcontext1proxy) +qt_add_dbus_interface(fcitx_qt5_adaptors ${fcitx_qt5_src}/org.fcitx.Fcitx.InputMethod.xml inputmethodproxy) +qt_add_dbus_interface(fcitx_qt5_adaptors ${fcitx_qt5_src}/org.fcitx.Fcitx.InputMethod1.xml inputmethod1proxy) target_sources(external_fcitx_qt5 PRIVATE ${fcitx_qt5_adaptors}) diff --git a/external/qt/CMakeLists.txt b/external/qt/CMakeLists.txt index aab5b6d..5a72731 100644 --- a/external/qt/CMakeLists.txt +++ b/external/qt/CMakeLists.txt @@ -4,50 +4,32 @@ # For license and copyright information please follow this link: # https://github.com/desktop-app/legal/blob/master/LEGAL -add_subdirectory(qt_static_plugins) -if (DESKTOP_APP_QT6) - add_subdirectory(qt6) - return() -endif() - 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 - Qt5::Core - Qt5::CorePrivate - Qt5::Gui - Qt5::GuiPrivate - Qt5::Widgets - Qt5::Network - Qt5::Svg + Qt::Core + Qt::CorePrivate + $ + Qt::Gui + Qt::GuiPrivate + $ + Qt::Widgets + $ + Qt::Network + Qt::Svg + $ + $ + $ + $ + $ + $ ) - if (Qt5DBus_FOUND) - target_link_libraries(external_qt - INTERFACE - Qt5::DBus - ) - endif() - - if (Qt5XkbCommonSupport_FOUND) - target_link_libraries(external_qt - INTERFACE - Qt5::XkbCommonSupport - Qt5::XkbCommonSupportPrivate - ) - endif() - - if (LINUX AND NOT DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION) - target_link_libraries(external_qt - INTERFACE - Qt5::WaylandClient - Qt5::WaylandClientPrivate - ) - endif() - return() endif() @@ -55,73 +37,46 @@ target_include_directories(external_qt SYSTEM INTERFACE ${qt_loc}/include ${qt_loc}/include/QtCore + $<$:${qt_loc}/include/QtCore5Compat> ${qt_loc}/include/QtGui + $<$:${qt_loc}/include/QtOpenGL> ${qt_loc}/include/QtWidgets + $<$:${qt_loc}/include/QtOpenGLWidgets> ${qt_loc}/include/QtSvg + $<$:${qt_loc}/include/QtDBus> + $<$:${qt_loc}/include/QtXkbCommonSupport> + $<$:${qt_loc}/include/QtWaylandClient> ${qt_loc}/include/QtCore/${qt_version} ${qt_loc}/include/QtGui/${qt_version} + $<$:${qt_loc}/include/QtXkbCommonSupport/${qt_version}> + $<$:${qt_loc}/include/QtWaylandClient/${qt_version}> + $<$:${qt_loc}/include/QtWaylandGlobal/${qt_version}> ${qt_loc}/include/QtCore/${qt_version}/QtCore ${qt_loc}/include/QtGui/${qt_version}/QtGui + $<$:${qt_loc}/include/QtXkbCommonSupport/${qt_version}/QtXkbCommonSupport> + $<$:${qt_loc}/include/QtWaylandClient/${qt_version}/QtWaylandClient> + $<$:${qt_loc}/include/QtWaylandGlobal/${qt_version}/QtWaylandGlobal> ) -if (Qt5DBus_FOUND) - target_include_directories(external_qt SYSTEM - INTERFACE - ${qt_loc}/include/QtDBus - ) -endif() - -if (Qt5XkbCommonSupport_FOUND) - target_include_directories(external_qt SYSTEM - INTERFACE - ${qt_loc}/include/QtXkbCommonSupport - ${qt_loc}/include/QtXkbCommonSupport/${qt_version} - ${qt_loc}/include/QtXkbCommonSupport/${qt_version}/QtXkbCommonSupport - ) -endif() - -if (LINUX AND NOT DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION) - target_include_directories(external_qt SYSTEM - INTERFACE - ${qt_loc}/include/QtWaylandClient - ${qt_loc}/include/QtWaylandClient/${qt_version} - ${qt_loc}/include/QtWaylandClient/${qt_version}/QtWaylandClient - ) -endif() - target_compile_definitions(external_qt INTERFACE _REENTRANT QT_STATICPLUGIN QT_PLUGIN - QT_WIDGETS_LIB - QT_NETWORK_LIB - QT_GUI_LIB QT_CORE_LIB + $<$:QT_CORE5COMPAT_LIB> + QT_GUI_LIB + $<$:QT_OPENGL_LIB> + QT_WIDGETS_LIB + $<$:QT_OPENGLWIDGETS_LIB> + QT_NETWORK_LIB QT_SVG_LIB + $<$:QT_DBUS_LIB> + $<$:QT_XKBCOMMON_SUPPORT_LIB> + $<$:QT_WAYLANDCLIENT_LIB> + $<$:QT_WAYLANDGLOBAL_LIB> ) -if (Qt5DBus_FOUND) - target_compile_definitions(external_qt - INTERFACE - QT_DBUS_LIB - ) -endif() - -if (Qt5XkbCommonSupport_FOUND) - target_compile_definitions(external_qt - INTERFACE - QT_XKBCOMMON_SUPPORT_LIB - ) -endif() - -if (LINUX AND NOT DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION) - target_compile_definitions(external_qt - INTERFACE - QT_WAYLANDCLIENT_LIB - ) -endif() - if (WIN32) set(qt_lib_prefix "") set(qt_lib_suffix $<$:d>.lib) @@ -135,23 +90,48 @@ else() endif() set(common_qt_libs - plugins/bearer/${qt_lib_prefix}qgenericbearer plugins/imageformats/${qt_lib_prefix}qwebp plugins/imageformats/${qt_lib_prefix}qgif plugins/imageformats/${qt_lib_prefix}qjpeg - lib/${qt_lib_prefix}Qt5PrintSupport - lib/${qt_lib_prefix}Qt5AccessibilitySupport - lib/${qt_lib_prefix}Qt5FontDatabaseSupport - lib/${qt_lib_prefix}Qt5EventDispatcherSupport - lib/${qt_lib_prefix}Qt5ThemeSupport - lib/${qt_lib_prefix}Qt5Network - lib/${qt_lib_prefix}Qt5Widgets - lib/${qt_lib_prefix}Qt5Gui - lib/${qt_lib_prefix}Qt5Svg - lib/${qt_lib_prefix}qtharfbuzz - lib/${qt_lib_prefix}qtlibpng + lib/${qt_lib_prefix}Qt${QT_VERSION_MAJOR}Svg + lib/${qt_lib_prefix}Qt${QT_VERSION_MAJOR}Network + lib/${qt_lib_prefix}Qt${QT_VERSION_MAJOR}Widgets + lib/${qt_lib_prefix}Qt${QT_VERSION_MAJOR}Gui + lib/${qt_lib_prefix}Qt${QT_VERSION_MAJOR}Core ) +if (TARGET Qt::Core5Compat) + list(PREPEND common_qt_libs + lib/${qt_lib_prefix}Qt${QT_VERSION_MAJOR}Core5Compat + ) +endif() + +if (TARGET Qt::OpenGL) + list(PREPEND common_qt_libs + lib/${qt_lib_prefix}Qt${QT_VERSION_MAJOR}OpenGL + ) +endif() + +if (TARGET Qt::OpenGLWidgets) + list(PREPEND common_qt_libs + lib/${qt_lib_prefix}Qt${QT_VERSION_MAJOR}OpenGLWidgets + ) +endif() + +if (QT_VERSION_MAJOR GREATER_EQUAL 6) + list(APPEND common_qt_libs + lib/${qt_lib_prefix}Qt${QT_VERSION_MAJOR}BundledHarfbuzz + lib/${qt_lib_prefix}Qt${QT_VERSION_MAJOR}BundledLibpng + lib/${qt_lib_prefix}Qt${QT_VERSION_MAJOR}BundledPcre2 + ) +else() + list(APPEND common_qt_libs + lib/${qt_lib_prefix}qtharfbuzz + lib/${qt_lib_prefix}qtlibpng + lib/${qt_lib_prefix}qtpcre2 + ) +endif() + set(qt_libs_list "") if (WIN32) target_include_directories(external_qt SYSTEM @@ -159,12 +139,15 @@ if (WIN32) ${qt_loc}/mkspecs/win32-msvc ) set(qt_libs + plugins/bearer/${qt_lib_prefix}qgenericbearer + lib/${qt_lib_prefix}Qt${QT_VERSION_MAJOR}AccessibilitySupport + lib/${qt_lib_prefix}Qt${QT_VERSION_MAJOR}FontDatabaseSupport + lib/${qt_lib_prefix}Qt${QT_VERSION_MAJOR}EventDispatcherSupport + lib/${qt_lib_prefix}Qt${QT_VERSION_MAJOR}ThemeSupport ${common_qt_libs} - lib/${qt_lib_prefix}Qt5Core - lib/${qt_lib_prefix}Qt5WindowsUIAutomationSupport + lib/${qt_lib_prefix}Qt${QT_VERSION_MAJOR}WindowsUIAutomationSupport lib/${qt_lib_prefix}qtmain lib/${qt_lib_prefix}qtfreetype - lib/${qt_lib_prefix}qtpcre2 plugins/platforms/${qt_lib_prefix}qwindows ) foreach (lib ${qt_libs}) @@ -182,57 +165,46 @@ elseif (APPLE) ) set(qt_libs ${common_qt_libs} - lib/${qt_lib_prefix}Qt5Core - lib/${qt_lib_prefix}Qt5GraphicsSupport - lib/${qt_lib_prefix}Qt5ClipboardSupport - lib/${qt_lib_prefix}qtfreetype - lib/${qt_lib_prefix}qtpcre2 + lib/${qt_lib_prefix}Qt${QT_VERSION_MAJOR}BundledFreetype plugins/platforms/${qt_lib_prefix}qcocoa + plugins/tls/${qt_lib_prefix}qsecuretransportbackend + plugins/networkinformation/${qt_lib_prefix}qscnetworkreachability ) foreach (lib ${qt_libs}) list(APPEND qt_libs_list "${qt_loc}/${lib}${qt_lib_suffix}") endforeach() - target_link_libraries(external_qt - INTERFACE - cups + list(APPEND qt_libs_list + $ ) else() set(qt_libs plugins/platforminputcontexts/${qt_lib_prefix}composeplatforminputcontextplugin plugins/platformthemes/${qt_lib_prefix}qgtk3 plugins/platforms/${qt_lib_prefix}qxcb + plugins/tls/${qt_lib_prefix}qopensslbackend plugins/xcbglintegrations/${qt_lib_prefix}qxcb-egl-integration plugins/xcbglintegrations/${qt_lib_prefix}qxcb-glx-integration plugins/iconengines/${qt_lib_prefix}qsvgicon - lib/${qt_lib_prefix}Qt5XcbQpa - lib/${qt_lib_prefix}Qt5EglSupport - lib/${qt_lib_prefix}Qt5GlxSupport - lib/${qt_lib_prefix}Qt5ServiceSupport - lib/${qt_lib_prefix}Qt5EdidSupport - lib/${qt_lib_prefix}Qt5XkbCommonSupport - lib/${qt_lib_prefix}Qt5ServiceSupport + lib/${qt_lib_prefix}Qt${QT_VERSION_MAJOR}XcbQpa ${common_qt_libs} - lib/${qt_lib_prefix}Qt5Core - lib/${qt_lib_prefix}qtpcre2 ) - if (Qt5DBus_FOUND) + if (TARGET Qt::DBus) list(APPEND qt_libs - plugins/bearer/${qt_lib_prefix}qconnmanbearer - plugins/bearer/${qt_lib_prefix}qnmbearer plugins/platforminputcontexts/${qt_lib_prefix}ibusplatforminputcontextplugin plugins/platformthemes/${qt_lib_prefix}qxdgdesktopportal - lib/${qt_lib_prefix}Qt5LinuxAccessibilitySupport - lib/${qt_lib_prefix}Qt5DBus + lib/${qt_lib_prefix}Qt${QT_VERSION_MAJOR}DBus + lib/${qt_lib_prefix}Qt${QT_VERSION_MAJOR}Core ) endif() - if (NOT DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION) + if (TARGET Qt::WaylandClient) list(PREPEND qt_libs plugins/platforms/${qt_lib_prefix}qwayland-generic plugins/platforms/${qt_lib_prefix}qwayland-egl plugins/wayland-graphics-integration-client/${qt_lib_prefix}qt-plugin-wayland-egl plugins/wayland-shell-integration/${qt_lib_prefix}xdg-shell plugins/wayland-decoration-client/${qt_lib_prefix}bradient - lib/${qt_lib_prefix}Qt5WaylandClient + lib/${qt_lib_prefix}Qt${QT_VERSION_MAJOR}WaylandEglClientHwIntegration + lib/${qt_lib_prefix}Qt${QT_VERSION_MAJOR}WaylandClient ) endif() foreach (lib ${qt_libs}) @@ -240,6 +212,15 @@ else() endforeach() endif() +if (QT_VERSION_MAJOR GREATER_EQUAL 6) + list(APPEND qt_libs_list + $ + $ + $ + $ + ) +endif() + target_link_libraries(external_qt INTERFACE ${qt_libs_list} @@ -260,7 +241,6 @@ if (LINUX) target_link_static_libraries(external_qt INTERFACE proxy - epoxy xkbcommon xkbcommon-x11 xcb-glx @@ -271,15 +251,13 @@ if (LINUX) xcb-render xcb-image xcb-xfixes - xcb-xinerama - xcb-xinput xcb-shape xcb-sync xcb-util xcb-render-util xcb-keysyms ) - if (NOT DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION) + if (TARGET Qt::WaylandClient) target_link_libraries(external_qt INTERFACE desktop-app::linux_wayland_helper @@ -290,8 +268,11 @@ if (LINUX) desktop-app::linux_xcb_helper fontconfig freetype + EGL + GL xcb X11 X11-xcb + glib-2.0 ) endif() diff --git a/external/qt/package.cmake b/external/qt/package.cmake index 88bb825..bae8405 100644 --- a/external/qt/package.cmake +++ b/external/qt/package.cmake @@ -23,36 +23,33 @@ if (NOT DESKTOP_APP_USE_PACKAGED) endif() if (DESKTOP_APP_QT6) - find_package(Qt6 COMPONENTS Core Core5Compat Gui OpenGL Widgets OpenGLWidgets Network Svg REQUIRED) + find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core) else() - find_package(Qt5 COMPONENTS Core Gui Widgets Network Svg REQUIRED) + find_package(QT NAMES Qt5 REQUIRED COMPONENTS Core) +endif() + +find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Gui Widgets Network Svg REQUIRED) + +if (QT_VERSION_MAJOR GREATER_EQUAL 6) + find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core5Compat OpenGL OpenGLWidgets REQUIRED) endif() if (LINUX) if (NOT DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION) - if (DESKTOP_APP_QT6) - find_package(Qt6 COMPONENTS WaylandClient REQUIRED) - find_package(Qt6 OPTIONAL_COMPONENTS WaylandGlobalPrivate QUIET) + find_package(Qt${QT_VERSION_MAJOR} COMPONENTS WaylandClient REQUIRED) + if (QT_VERSION_MAJOR GREATER_EQUAL 6) + find_package(Qt${QT_VERSION_MAJOR} OPTIONAL_COMPONENTS WaylandGlobalPrivate QUIET) else() - find_package(Qt5 COMPONENTS WaylandClient REQUIRED) - find_package(Qt5 OPTIONAL_COMPONENTS XkbCommonSupport QUIET) + find_package(Qt${QT_VERSION_MAJOR} OPTIONAL_COMPONENTS XkbCommonSupport QUIET) endif() endif() if ((NOT DESKTOP_APP_USE_PACKAGED OR (DESKTOP_APP_USE_PACKAGED AND DESKTOP_APP_USE_PACKAGED_LAZY)) AND NOT DESKTOP_APP_DISABLE_DBUS_INTEGRATION) - if (DESKTOP_APP_QT6) - find_package(Qt6 COMPONENTS DBus REQUIRED) - else() - find_package(Qt5 COMPONENTS DBus REQUIRED) - endif() + find_package(Qt${QT_VERSION_MAJOR} COMPONENTS DBus REQUIRED) elseif (NOT DESKTOP_APP_USE_PACKAGED) - if (DESKTOP_APP_QT6) - find_package(Qt6 OPTIONAL_COMPONENTS DBus QUIET) - else() - find_package(Qt5 OPTIONAL_COMPONENTS DBus QUIET) - endif() + find_package(Qt${QT_VERSION_MAJOR} OPTIONAL_COMPONENTS DBus QUIET) endif() endif() diff --git a/external/qt/qt6/CMakeLists.txt b/external/qt/qt6/CMakeLists.txt deleted file mode 100644 index 3d066f4..0000000 --- a/external/qt/qt6/CMakeLists.txt +++ /dev/null @@ -1,281 +0,0 @@ -# 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 INTERFACE IMPORTED GLOBAL) -add_library(desktop-app::external_qt ALIAS external_qt) - -if (DESKTOP_APP_USE_PACKAGED) - target_link_libraries(external_qt - INTERFACE - Qt6::Core - Qt6::CorePrivate - Qt6::Core5Compat - Qt6::Gui - Qt6::GuiPrivate - Qt6::OpenGL - Qt6::Widgets - Qt6::OpenGLWidgets - Qt6::Network - Qt6::Svg - ) - - if (Qt6DBus_FOUND) - target_link_libraries(external_qt - INTERFACE - Qt6::DBus - ) - endif() - - if (LINUX AND NOT DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION) - target_link_libraries(external_qt - INTERFACE - Qt6::WaylandClient - Qt6::WaylandClientPrivate - ) - - if (Qt6WaylandGlobalPrivate_FOUND) - target_link_libraries(external_qt - INTERFACE - Qt6::WaylandGlobalPrivate - ) - endif() - endif() - - return() -endif() - -target_include_directories(external_qt SYSTEM -INTERFACE - ${qt_loc}/include - ${qt_loc}/include/QtCore - ${qt_loc}/include/QtCore5Compat - ${qt_loc}/include/QtGui - ${qt_loc}/include/QtOpenGL - ${qt_loc}/include/QtWidgets - ${qt_loc}/include/QtOpenGLWidgets - ${qt_loc}/include/QtSvg - ${qt_loc}/include/QtCore/${qt_version} - ${qt_loc}/include/QtGui/${qt_version} - ${qt_loc}/include/QtCore/${qt_version}/QtCore - ${qt_loc}/include/QtGui/${qt_version}/QtGui -) - -if (Qt6DBus_FOUND) - target_include_directories(external_qt SYSTEM - INTERFACE - ${qt_loc}/include/QtDBus - ) -endif() - -if (LINUX AND NOT DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION) - target_include_directories(external_qt SYSTEM - INTERFACE - ${qt_loc}/include/QtWaylandClient - ${qt_loc}/include/QtWaylandGlobal - ${qt_loc}/include/QtWaylandClient/${qt_version} - ${qt_loc}/include/QtWaylandGlobal/${qt_version} - ${qt_loc}/include/QtWaylandClient/${qt_version}/QtWaylandClient - ${qt_loc}/include/QtWaylandGlobal/${qt_version}/QtWaylandGlobal - ) -endif() - -target_compile_definitions(external_qt -INTERFACE - _REENTRANT - QT_STATICPLUGIN - QT_PLUGIN - QT_SVG_LIB - QT_NETWORK_LIB - QT_OPENGLWIDGETS_LIB - QT_WIDGETS_LIB - QT_OPENGL_LIB - QT_GUI_LIB - QT_CORE5COMPAT_LIB - QT_CORE_LIB -) - -if (Qt6DBus_FOUND) - target_compile_definitions(external_qt - INTERFACE - QT_DBUS_LIB - ) -endif() - -if (LINUX AND NOT DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION) - target_compile_definitions(external_qt - INTERFACE - QT_WAYLANDCLIENT_LIB - QT_WAYLANDGLOBAL_LIB - ) -endif() - -if (WIN32) - set(qt_lib_prefix "") - set(qt_lib_suffix $<$:d>.lib) -else() - set(qt_lib_prefix lib) - if (APPLE) - set(qt_lib_suffix $<$:_debug>.a) - else() - set(qt_lib_suffix .a) - endif() -endif() - -set(common_qt_libs - plugins/imageformats/${qt_lib_prefix}qwebp - plugins/imageformats/${qt_lib_prefix}qgif - plugins/imageformats/${qt_lib_prefix}qjpeg - lib/${qt_lib_prefix}Qt6Svg - lib/${qt_lib_prefix}Qt6Network - lib/${qt_lib_prefix}Qt6OpenGLWidgets - lib/${qt_lib_prefix}Qt6Widgets - lib/${qt_lib_prefix}Qt6OpenGL - lib/${qt_lib_prefix}Qt6Gui - lib/${qt_lib_prefix}Qt6Core5Compat - lib/${qt_lib_prefix}Qt6Core - lib/${qt_lib_prefix}Qt6BundledHarfbuzz - lib/${qt_lib_prefix}Qt6BundledLibpng - lib/${qt_lib_prefix}Qt6BundledPcre2 -) - -set(qt_libs_list "") -if (WIN32) - target_include_directories(external_qt SYSTEM - INTERFACE - ${qt_loc}/mkspecs/win32-msvc - ) - set(qt_libs - ${common_qt_libs} - lib/${qt_lib_prefix}Qt6WindowsUIAutomationSupport - lib/${qt_lib_prefix}qtmain - lib/${qt_lib_prefix}Qt6BundledFreetype - plugins/platforms/${qt_lib_prefix}qwindows - plugins/tls/${qt_lib_prefix}qopensslbackend - ) - foreach (lib ${qt_libs}) - list(APPEND qt_libs_list "${qt_loc}/${lib}${qt_lib_suffix}") - endforeach() - - target_link_libraries(external_qt - INTERFACE - desktop-app::external_angle - ) -elseif (APPLE) - target_include_directories(external_qt SYSTEM - INTERFACE - ${qt_loc}/mkspecs/macx-clang - ) - set(qt_libs - ${common_qt_libs} - lib/${qt_lib_prefix}Qt6BundledFreetype - plugins/platforms/${qt_lib_prefix}qcocoa - plugins/tls/${qt_lib_prefix}qsecuretransportbackend - plugins/networkinformation/${qt_lib_prefix}qscnetworkreachability - ) - foreach (lib ${qt_libs}) - list(APPEND qt_libs_list "${qt_loc}/${lib}${qt_lib_suffix}") - endforeach() - list(APPEND qt_libs_list - $ - ) -else() - set(qt_libs - plugins/platforminputcontexts/${qt_lib_prefix}composeplatforminputcontextplugin - plugins/platformthemes/${qt_lib_prefix}qgtk3 - plugins/platforms/${qt_lib_prefix}qxcb - plugins/tls/${qt_lib_prefix}qopensslbackend - plugins/xcbglintegrations/${qt_lib_prefix}qxcb-egl-integration - plugins/xcbglintegrations/${qt_lib_prefix}qxcb-glx-integration - plugins/iconengines/${qt_lib_prefix}qsvgicon - lib/${qt_lib_prefix}Qt6XcbQpa - ${common_qt_libs} - ) - if (Qt6DBus_FOUND) - list(APPEND qt_libs - plugins/platforminputcontexts/${qt_lib_prefix}ibusplatforminputcontextplugin - plugins/platformthemes/${qt_lib_prefix}qxdgdesktopportal - lib/${qt_lib_prefix}Qt6DBus - lib/${qt_lib_prefix}Qt6Core - ) - endif() - if (NOT DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION) - list(PREPEND qt_libs - plugins/platforms/${qt_lib_prefix}qwayland-generic - plugins/platforms/${qt_lib_prefix}qwayland-egl - plugins/wayland-graphics-integration-client/${qt_lib_prefix}qt-plugin-wayland-egl - plugins/wayland-shell-integration/${qt_lib_prefix}xdg-shell - plugins/wayland-decoration-client/${qt_lib_prefix}bradient - lib/${qt_lib_prefix}Qt6WaylandEglClientHwIntegration - lib/${qt_lib_prefix}Qt6WaylandClient - ) - endif() - foreach (lib ${qt_libs}) - list(APPEND qt_libs_list "${qt_loc}/${lib}${qt_lib_suffix}") - endforeach() -endif() - -list(APPEND qt_libs_list - $ - $ - $ - $ -) - -target_link_libraries(external_qt -INTERFACE - ${qt_libs_list} - $ - $ - $ - $ - $ - $ - $ -) - -if (LINUX) - target_include_directories(external_qt SYSTEM - INTERFACE - ${qt_loc}/mkspecs/linux-g++ - ) - target_link_static_libraries(external_qt - INTERFACE - proxy - xkbcommon - xkbcommon-x11 - xcb-glx - xcb-xkb - xcb-randr - xcb-icccm - xcb-shm - xcb-render - xcb-image - xcb-xfixes - xcb-shape - xcb-sync - xcb-util - xcb-render-util - xcb-keysyms - ) - if (NOT DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION) - target_link_libraries(external_qt - INTERFACE - desktop-app::linux_wayland_helper - ) - endif() - target_link_libraries(external_qt - INTERFACE - desktop-app::linux_xcb_helper - fontconfig - freetype - EGL - GL - xcb - X11 - X11-xcb - glib-2.0 - ) -endif() diff --git a/target_prepare_qrc.cmake b/target_prepare_qrc.cmake index 0e2ec4b..99ebcd9 100644 --- a/target_prepare_qrc.cmake +++ b/target_prepare_qrc.cmake @@ -34,14 +34,9 @@ function(target_prepare_qrc target_name) set(rcc_file ${target_name}.rcc) set(rcc_path "${CMAKE_BINARY_DIR}/${rcc_file}") source_group(TREE ${CMAKE_BINARY_DIR} PREFIX Resources FILES ${rcc_path}) - if (DESKTOP_APP_QT6) - set(rcc_binary Qt6::rcc) - else() - set(rcc_binary Qt5::rcc) - endif() add_custom_command(OUTPUT ${rcc_path} DEPENDS ${qrc_files} - COMMAND ${rcc_binary} ${rcc_flags} -o ${rcc_path} ${qrc_files} + COMMAND Qt::rcc ${rcc_flags} -o ${rcc_path} ${qrc_files} COMMAND_EXPAND_LISTS VERBATIM ) target_add_resource(${target_name} ${rcc_path})