diff --git a/external/qt/CMakeLists.txt b/external/qt/CMakeLists.txt index 5d6b5c0..4a24c49 100644 --- a/external/qt/CMakeLists.txt +++ b/external/qt/CMakeLists.txt @@ -24,6 +24,10 @@ if (DESKTOP_APP_USE_PACKAGED) Qt::Network Qt::Svg $ + $ + $ + $ + $ ) return() @@ -40,6 +44,10 @@ INTERFACE $<$:${qt_loc}/include/QtOpenGLWidgets> ${qt_loc}/include/QtSvg $<$:${qt_loc}/include/QtDBus> + $<$:${qt_loc}/include/QtQml> + $<$:${qt_loc}/include/QtQuick> + $<$:${qt_loc}/include/QtQuickWidgets> + $<$:${qt_loc}/include/QtWaylandCompositor> ${qt_loc}/include/QtCore/${qt_version} ${qt_loc}/include/QtGui/${qt_version} ${qt_loc}/include/QtWidgets/${qt_version} @@ -62,6 +70,10 @@ INTERFACE QT_NETWORK_LIB QT_SVG_LIB $<$:QT_DBUS_LIB> + $<$:QT_QML_LIB> + $<$:QT_QUICK_LIB> + $<$:QT_QUICKWIDGETS_LIB> + $<$:QT_WAYLANDCOMPOSITOR_LIB> ) if (WIN32) @@ -105,6 +117,31 @@ if (TARGET Qt::OpenGLWidgets) ) endif() +if (TARGET Qt::Qml) + list(PREPEND common_qt_libs + qml/QtQml/WorkerScript/${qt_lib_prefix}workerscriptplugin + qml/QtQml/Models/${qt_lib_prefix}modelsplugin + qml/QtQml/${qt_lib_prefix}qmlplugin + lib/${qt_lib_prefix}Qt${QT_VERSION_MAJOR}QmlWorkerScript + lib/${qt_lib_prefix}Qt${QT_VERSION_MAJOR}QmlModels + lib/${qt_lib_prefix}Qt${QT_VERSION_MAJOR}Qml + ) +endif() + +if (TARGET Qt::Quick) + list(PREPEND common_qt_libs + qml/QtQuick/Window/${qt_lib_prefix}quickwindowplugin + qml/QtQuick/${qt_lib_prefix}qtquick2plugin + lib/${qt_lib_prefix}Qt${QT_VERSION_MAJOR}Quick + ) +endif() + +if (TARGET Qt::QuickWidgets) + list(PREPEND common_qt_libs + lib/${qt_lib_prefix}Qt${QT_VERSION_MAJOR}QuickWidgets + ) +endif() + if (QT_VERSION_MAJOR GREATER_EQUAL 6) list(APPEND common_qt_libs lib/${qt_lib_prefix}Qt${QT_VERSION_MAJOR}BundledHarfbuzz @@ -194,6 +231,26 @@ else() lib/${qt_lib_prefix}Qt${QT_VERSION_MAJOR}WaylandClient ) endif() + if (TARGET Qt::WaylandCompositor) + list(PREPEND qt_libs + lib/${qt_lib_prefix}Qt${QT_VERSION_MAJOR}WaylandCompositor + ) + list(APPEND qt_libs_list + $ + ) + if (TARGET Qt::Quick) + list(PREPEND qt_libs + qml/QtWayland/Compositor/${qt_lib_prefix}qwaylandcompositorplugin + qml/QtWayland/Compositor/XdgShell/${qt_lib_prefix}waylandcompositorxdgshellplugin + ) + list(APPEND qt_libs_list + $ + $ + $ + $ + ) + endif() + endif() foreach (lib ${qt_libs}) list(APPEND qt_libs_list "${qt_loc}/${lib}${qt_lib_suffix}") endforeach() @@ -207,6 +264,22 @@ if (QT_VERSION_MAJOR GREATER_EQUAL 6) $ $ ) + + if (TARGET Qt::Qml) + list(APPEND qt_libs_list + $ + $ + $ + ) + endif() + + if (TARGET Qt::Quick) + list(APPEND qt_libs_list + $ + $ + $ + ) + endif() endif() target_link_libraries(external_qt @@ -251,6 +324,13 @@ if (LINUX) desktop-app::linux_wayland_helper ) endif() + if (TARGET Qt::WaylandCompositor) + target_link_static_libraries(external_qt + INTERFACE + wayland-server + ffi + ) + endif() target_link_libraries(external_qt INTERFACE desktop-app::linux_xcb_helper diff --git a/external/qt/package.cmake b/external/qt/package.cmake index 2691a34..2faa580 100644 --- a/external/qt/package.cmake +++ b/external/qt/package.cmake @@ -29,6 +29,7 @@ if (NOT DEFINED QT_VERSION_MAJOR) endif() find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Gui Widgets Network Svg REQUIRED) +find_package(Qt${QT_VERSION_MAJOR} OPTIONAL_COMPONENTS Qml Quick QuickWidgets QUIET) set(qt_version_6_or_greater 0) if (QT_VERSION_MAJOR GREATER_EQUAL 6) @@ -42,6 +43,7 @@ cmake_dependent_option(DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION "Disable all code if (LINUX) if (NOT DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION) find_package(Qt${QT_VERSION_MAJOR} COMPONENTS WaylandClient REQUIRED) + find_package(Qt${QT_VERSION_MAJOR} OPTIONAL_COMPONENTS WaylandCompositor QUIET) endif() if (NOT DESKTOP_APP_DISABLE_DBUS_INTEGRATION)