Use QtWaylandCompositor for webview embedding on Linux
This commit is contained in:
parent
2ba61d5977
commit
bcd5e3a640
2 changed files with 82 additions and 0 deletions
80
external/qt/CMakeLists.txt
vendored
80
external/qt/CMakeLists.txt
vendored
|
|
@ -24,6 +24,10 @@ if (DESKTOP_APP_USE_PACKAGED)
|
||||||
Qt::Network
|
Qt::Network
|
||||||
Qt::Svg
|
Qt::Svg
|
||||||
$<TARGET_NAME_IF_EXISTS:Qt::DBus>
|
$<TARGET_NAME_IF_EXISTS:Qt::DBus>
|
||||||
|
$<TARGET_NAME_IF_EXISTS:Qt::Qml>
|
||||||
|
$<TARGET_NAME_IF_EXISTS:Qt::Quick>
|
||||||
|
$<TARGET_NAME_IF_EXISTS:Qt::QuickWidgets>
|
||||||
|
$<TARGET_NAME_IF_EXISTS:Qt::WaylandCompositor>
|
||||||
)
|
)
|
||||||
|
|
||||||
return()
|
return()
|
||||||
|
|
@ -40,6 +44,10 @@ INTERFACE
|
||||||
$<$<TARGET_EXISTS:Qt::OpenGLWidgets>:${qt_loc}/include/QtOpenGLWidgets>
|
$<$<TARGET_EXISTS:Qt::OpenGLWidgets>:${qt_loc}/include/QtOpenGLWidgets>
|
||||||
${qt_loc}/include/QtSvg
|
${qt_loc}/include/QtSvg
|
||||||
$<$<TARGET_EXISTS:Qt::DBus>:${qt_loc}/include/QtDBus>
|
$<$<TARGET_EXISTS:Qt::DBus>:${qt_loc}/include/QtDBus>
|
||||||
|
$<$<TARGET_EXISTS:Qt::Qml>:${qt_loc}/include/QtQml>
|
||||||
|
$<$<TARGET_EXISTS:Qt::Quick>:${qt_loc}/include/QtQuick>
|
||||||
|
$<$<TARGET_EXISTS:Qt::QuickWidgets>:${qt_loc}/include/QtQuickWidgets>
|
||||||
|
$<$<TARGET_EXISTS:Qt::WaylandCompositor>:${qt_loc}/include/QtWaylandCompositor>
|
||||||
${qt_loc}/include/QtCore/${qt_version}
|
${qt_loc}/include/QtCore/${qt_version}
|
||||||
${qt_loc}/include/QtGui/${qt_version}
|
${qt_loc}/include/QtGui/${qt_version}
|
||||||
${qt_loc}/include/QtWidgets/${qt_version}
|
${qt_loc}/include/QtWidgets/${qt_version}
|
||||||
|
|
@ -62,6 +70,10 @@ INTERFACE
|
||||||
QT_NETWORK_LIB
|
QT_NETWORK_LIB
|
||||||
QT_SVG_LIB
|
QT_SVG_LIB
|
||||||
$<$<TARGET_EXISTS:Qt::DBus>:QT_DBUS_LIB>
|
$<$<TARGET_EXISTS:Qt::DBus>:QT_DBUS_LIB>
|
||||||
|
$<$<TARGET_EXISTS:Qt::Qml>:QT_QML_LIB>
|
||||||
|
$<$<TARGET_EXISTS:Qt::Quick>:QT_QUICK_LIB>
|
||||||
|
$<$<TARGET_EXISTS:Qt::QuickWidgets>:QT_QUICKWIDGETS_LIB>
|
||||||
|
$<$<TARGET_EXISTS:Qt::WaylandCompositor>:QT_WAYLANDCOMPOSITOR_LIB>
|
||||||
)
|
)
|
||||||
|
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
|
|
@ -105,6 +117,31 @@ if (TARGET Qt::OpenGLWidgets)
|
||||||
)
|
)
|
||||||
endif()
|
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)
|
if (QT_VERSION_MAJOR GREATER_EQUAL 6)
|
||||||
list(APPEND common_qt_libs
|
list(APPEND common_qt_libs
|
||||||
lib/${qt_lib_prefix}Qt${QT_VERSION_MAJOR}BundledHarfbuzz
|
lib/${qt_lib_prefix}Qt${QT_VERSION_MAJOR}BundledHarfbuzz
|
||||||
|
|
@ -194,6 +231,26 @@ else()
|
||||||
lib/${qt_lib_prefix}Qt${QT_VERSION_MAJOR}WaylandClient
|
lib/${qt_lib_prefix}Qt${QT_VERSION_MAJOR}WaylandClient
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
if (TARGET Qt::WaylandCompositor)
|
||||||
|
list(PREPEND qt_libs
|
||||||
|
lib/${qt_lib_prefix}Qt${QT_VERSION_MAJOR}WaylandCompositor
|
||||||
|
)
|
||||||
|
list(APPEND qt_libs_list
|
||||||
|
$<TARGET_OBJECTS:Qt${QT_VERSION_MAJOR}::WaylandCompositor_resources_1>
|
||||||
|
)
|
||||||
|
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
|
||||||
|
$<TARGET_OBJECTS:Qt${QT_VERSION_MAJOR}::WaylandCompositor_qmlcache>
|
||||||
|
$<TARGET_OBJECTS:Qt${QT_VERSION_MAJOR}::WaylandCompositor_resources_2>
|
||||||
|
$<TARGET_OBJECTS:Qt${QT_VERSION_MAJOR}::WaylandCompositor_resources_3>
|
||||||
|
$<TARGET_OBJECTS:Qt${QT_VERSION_MAJOR}::WaylandCompositorXdgShell_resources_1>
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
foreach (lib ${qt_libs})
|
foreach (lib ${qt_libs})
|
||||||
list(APPEND qt_libs_list "${qt_loc}/${lib}${qt_lib_suffix}")
|
list(APPEND qt_libs_list "${qt_loc}/${lib}${qt_lib_suffix}")
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
@ -207,6 +264,22 @@ if (QT_VERSION_MAJOR GREATER_EQUAL 6)
|
||||||
$<TARGET_OBJECTS:Qt${QT_VERSION_MAJOR}::Widgets_resources_2>
|
$<TARGET_OBJECTS:Qt${QT_VERSION_MAJOR}::Widgets_resources_2>
|
||||||
$<TARGET_OBJECTS:Qt${QT_VERSION_MAJOR}::Widgets_resources_3>
|
$<TARGET_OBJECTS:Qt${QT_VERSION_MAJOR}::Widgets_resources_3>
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if (TARGET Qt::Qml)
|
||||||
|
list(APPEND qt_libs_list
|
||||||
|
$<TARGET_OBJECTS:Qt${QT_VERSION_MAJOR}::Qml_resources_1>
|
||||||
|
$<TARGET_OBJECTS:Qt${QT_VERSION_MAJOR}::QmlModels_resources_1>
|
||||||
|
$<TARGET_OBJECTS:Qt${QT_VERSION_MAJOR}::QmlWorkerScript_resources_1>
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (TARGET Qt::Quick)
|
||||||
|
list(APPEND qt_libs_list
|
||||||
|
$<TARGET_OBJECTS:Qt${QT_VERSION_MAJOR}::Quick_resources_1>
|
||||||
|
$<TARGET_OBJECTS:Qt${QT_VERSION_MAJOR}::Quick_resources_2>
|
||||||
|
$<TARGET_OBJECTS:Qt${QT_VERSION_MAJOR}::quickwindow_resources_1>
|
||||||
|
)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_link_libraries(external_qt
|
target_link_libraries(external_qt
|
||||||
|
|
@ -251,6 +324,13 @@ if (LINUX)
|
||||||
desktop-app::linux_wayland_helper
|
desktop-app::linux_wayland_helper
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
if (TARGET Qt::WaylandCompositor)
|
||||||
|
target_link_static_libraries(external_qt
|
||||||
|
INTERFACE
|
||||||
|
wayland-server
|
||||||
|
ffi
|
||||||
|
)
|
||||||
|
endif()
|
||||||
target_link_libraries(external_qt
|
target_link_libraries(external_qt
|
||||||
INTERFACE
|
INTERFACE
|
||||||
desktop-app::linux_xcb_helper
|
desktop-app::linux_xcb_helper
|
||||||
|
|
|
||||||
2
external/qt/package.cmake
vendored
2
external/qt/package.cmake
vendored
|
|
@ -29,6 +29,7 @@ if (NOT DEFINED QT_VERSION_MAJOR)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Gui Widgets Network Svg REQUIRED)
|
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)
|
set(qt_version_6_or_greater 0)
|
||||||
if (QT_VERSION_MAJOR GREATER_EQUAL 6)
|
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 (LINUX)
|
||||||
if (NOT DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION)
|
if (NOT DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION)
|
||||||
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS WaylandClient REQUIRED)
|
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS WaylandClient REQUIRED)
|
||||||
|
find_package(Qt${QT_VERSION_MAJOR} OPTIONAL_COMPONENTS WaylandCompositor QUIET)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT DESKTOP_APP_DISABLE_DBUS_INTEGRATION)
|
if (NOT DESKTOP_APP_DISABLE_DBUS_INTEGRATION)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue