From e1cbbf2dfd537ba3cc1697929864d27bd79e55f6 Mon Sep 17 00:00:00 2001 From: Tim Blechmann Date: Tue, 26 Mar 2024 11:23:12 +0800 Subject: CMake: separate GStreamer plugin into unit-testable Core library We cannot unit-test plugin code, so we separate the plugin entry point and and implementation into two separate targets. This allows us to link the static library into unit tests. Pick-to: 6.5 Change-Id: I4d579caf90a3912258c7979e8ee4771bc68329a9 Reviewed-by: Qt CI Bot Reviewed-by: Alexandru Croitor (cherry picked from commit 6351b52b24ec5c8fa37abb4d394a4ca40d6fcf51) Reviewed-by: Qt Cherry-pick Bot (cherry picked from commit 3667072b27fd9bc2a2c165b89af0a7e314da1c8a) Reviewed-by: Artem Dyomin --- src/plugins/multimedia/gstreamer/CMakeLists.txt | 29 +++++++++++++++++-------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/src/plugins/multimedia/gstreamer/CMakeLists.txt b/src/plugins/multimedia/gstreamer/CMakeLists.txt index 789ca9f25..071e5db13 100644 --- a/src/plugins/multimedia/gstreamer/CMakeLists.txt +++ b/src/plugins/multimedia/gstreamer/CMakeLists.txt @@ -3,9 +3,9 @@ qt_find_package(EGL) -qt_internal_add_plugin(QGstreamerMediaPlugin - OUTPUT_NAME gstreamermediaplugin - PLUGIN_TYPE multimedia +qt_internal_add_module(QGstreamerMediaPluginPrivate + STATIC + INTERNAL_MODULE SOURCES audio/qgstreameraudiodevice.cpp audio/qgstreameraudiodevice_p.h audio/qgstreameraudiosource.cpp audio/qgstreameraudiosource_p.h @@ -30,10 +30,9 @@ qt_internal_add_plugin(QGstreamerMediaPlugin common/qgstvideobuffer.cpp common/qgstvideobuffer_p.h common/qgstvideorenderersink.cpp common/qgstvideorenderersink_p.h common/qgstsubtitlesink.cpp common/qgstsubtitlesink_p.h - qgstreamervideodevices.cpp qgstreamervideodevices_p.h - qgstreamerformatinfo.cpp qgstreamerformatinfo_p.h qgstreamerintegration.cpp qgstreamerintegration_p.h - qgstreamerplugin.cpp + qgstreamerformatinfo.cpp qgstreamerformatinfo_p.h + qgstreamervideodevices.cpp qgstreamervideodevices_p.h mediacapture/qgstreamercamera.cpp mediacapture/qgstreamercamera_p.h mediacapture/qgstreamerimagecapture.cpp mediacapture/qgstreamerimagecapture_p.h mediacapture/qgstreamermediacapture.cpp mediacapture/qgstreamermediacapture_p.h @@ -42,22 +41,34 @@ qt_internal_add_plugin(QGstreamerMediaPlugin # Conflicts with macros defined in X11.h, and Xlib.h common/qgstvideobuffer.cpp common/qgstreamervideosink.cpp + NO_GENERATE_CPP_EXPORTS DEFINES GLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26 - LIBRARIES + PUBLIC_LIBRARIES Qt::MultimediaPrivate Qt::CorePrivate GStreamer::GStreamer GStreamer::App ) -qt_internal_extend_target(QGstreamerMediaPlugin CONDITION QT_FEATURE_gstreamer_photography +qt_internal_extend_target(QGstreamerMediaPluginPrivate CONDITION QT_FEATURE_gstreamer_photography LIBRARIES GStreamer::Photography ) -qt_internal_extend_target(QGstreamerMediaPlugin CONDITION QT_FEATURE_gstreamer_gl +qt_internal_extend_target(QGstreamerMediaPluginPrivate CONDITION QT_FEATURE_gstreamer_gl LIBRARIES GStreamer::Gl EGL::EGL ) + +qt_internal_add_plugin(QGstreamerMediaPlugin + OUTPUT_NAME gstreamermediaplugin + PLUGIN_TYPE multimedia + SOURCES + qgstreamerplugin.cpp + gstreamer.json + LIBRARIES + Qt::QGstreamerMediaPluginPrivate + Qt::MultimediaPrivate +) -- cgit v1.2.3