summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Blechmann <tim@klingt.org>2024-03-26 11:23:12 +0800
committerTim Blechmann <tim@klingt.org>2024-03-30 00:05:07 +0000
commite1cbbf2dfd537ba3cc1697929864d27bd79e55f6 (patch)
treeb486345f2fbef8a14494220f1a97b2d08f2eb35e
parent8fb650137215ca02588f131e44dcac18d20ee1ac (diff)
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 <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit 6351b52b24ec5c8fa37abb4d394a4ca40d6fcf51) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 3667072b27fd9bc2a2c165b89af0a7e314da1c8a) Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
-rw-r--r--src/plugins/multimedia/gstreamer/CMakeLists.txt29
1 files 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
+)