aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Neumann <30894796+Neumann-A@users.noreply.github.com>2021-10-11 20:03:50 +0200
committerGitHub <noreply@github.com>2021-10-11 11:03:50 -0700
commit1d4128f08e30cec31b94500840c7eca8ebc579cb (patch)
treeaaca2568a99d89d6a6992085ae3d0eccc9aea7f9
parent694b757525e36c8b3bcaf1b913b23c812d2fd211 (diff)
downloadvcpkg-1d4128f08e30cec31b94500840c7eca8ebc579cb.tar.gz
vcpkg-1d4128f08e30cec31b94500840c7eca8ebc579cb.zip
[qt] Fix qtmultimedia with gstreamer on windows (#20555)
* apply patches to make qtmultimedia work with gestreamer on windows * version stuff * remove libnice from ci.baseline * move gstreamer on osx as fail to baseline * add supports field to qtmultimedia. Qt does not officially support x86 on windows * version stuff * remove duplicated patch * version stuff * add upstream patch to fix x86-windows * [skip actions] version stuff
-rw-r--r--ports/qtbase/fix_qthread_max.patch13
-rw-r--r--ports/qtbase/portfile.cmake1
-rw-r--r--ports/qtbase/vcpkg.json2
-rw-r--r--ports/qtmultimedia/3c74340.diff128
-rw-r--r--ports/qtmultimedia/FindGObject.patch20
-rw-r--r--ports/qtmultimedia/FindGStreamer.patch36
-rw-r--r--ports/qtmultimedia/portfile.cmake6
-rw-r--r--ports/qtmultimedia/remove_unistd.patch24
-rw-r--r--ports/qtmultimedia/vcpkg.json6
-rw-r--r--scripts/ci.baseline.txt9
-rw-r--r--versions/baseline.json4
-rw-r--r--versions/q-/qtbase.json5
-rw-r--r--versions/q-/qtmultimedia.json5
13 files changed, 247 insertions, 12 deletions
diff --git a/ports/qtbase/fix_qthread_max.patch b/ports/qtbase/fix_qthread_max.patch
new file mode 100644
index 000000000..9138c3c88
--- /dev/null
+++ b/ports/qtbase/fix_qthread_max.patch
@@ -0,0 +1,13 @@
+diff --git a/src/corelib/thread/qthread.h b/src/corelib/thread/qthread.h
+index 5dc4d2222..1696dbc80 100644
+--- a/src/corelib/thread/qthread.h
++++ b/src/corelib/thread/qthread.h
+@@ -120,7 +120,7 @@ public:
+ bool wait(QDeadlineTimer deadline = QDeadlineTimer(QDeadlineTimer::Forever));
+ bool wait(unsigned long time)
+ {
+- if (time == std::numeric_limits<unsigned long>::max())
++ if (time == (std::numeric_limits<unsigned long>::max)())
+ return wait(QDeadlineTimer(QDeadlineTimer::Forever));
+ return wait(QDeadlineTimer(time));
+ }
diff --git a/ports/qtbase/portfile.cmake b/ports/qtbase/portfile.cmake
index 60a247254..fb3eca7c3 100644
--- a/ports/qtbase/portfile.cmake
+++ b/ports/qtbase/portfile.cmake
@@ -17,6 +17,7 @@ set(${PORT}_PATCHES
fix_cmake_build.patch
harfbuzz.patch
fix_egl.patch
+ fix_qthread_max.patch
)
if(NOT VCPKG_USE_HEAD_VERSION AND NOT QT_IS_LATEST)
diff --git a/ports/qtbase/vcpkg.json b/ports/qtbase/vcpkg.json
index 25f24be83..56b49db00 100644
--- a/ports/qtbase/vcpkg.json
+++ b/ports/qtbase/vcpkg.json
@@ -1,7 +1,7 @@
{
"name": "qtbase",
"version-semver": "6.2.0",
- "port-version": 1,
+ "port-version": 2,
"description": "Qt Application Framework Base Module. Includes Core, GUI, Widgets, Networking, SQL, Concurrent and other essential qt components.",
"homepage": "https://www.qt.io/",
"dependencies": [
diff --git a/ports/qtmultimedia/3c74340.diff b/ports/qtmultimedia/3c74340.diff
new file mode 100644
index 000000000..05935f623
--- /dev/null
+++ b/ports/qtmultimedia/3c74340.diff
@@ -0,0 +1,128 @@
+From 3c7434025c5e14c2b3027a13ce90aab49712156c Mon Sep 17 00:00:00 2001
+From: André de la Rocha <andre.rocha@qt.io>
+Date: Wed, 06 Oct 2021 02:45:14 +0200
+Subject: [PATCH] Fix function declarations
+
+Adding missing QT_WIN_CALLBACK / QT_FASTCALL
+
+Pick-to: 6.2
+Change-Id: I5ba5a6341a988f162b9562c9fd328b9d90c6e1ab
+Reviewed-by: Lars Knoll <lars.knoll@qt.io>
+---
+
+diff --git a/src/multimedia/platform/windows/qwindowsmediadevices.cpp b/src/multimedia/platform/windows/qwindowsmediadevices.cpp
+index 067c2bb..a525569 100644
+--- a/src/multimedia/platform/windows/qwindowsmediadevices.cpp
++++ b/src/multimedia/platform/windows/qwindowsmediadevices.cpp
+@@ -190,7 +190,7 @@
+ }
+ };
+
+-LRESULT deviceNotificationWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
++LRESULT QT_WIN_CALLBACK deviceNotificationWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
+ {
+ if (message == WM_DEVICECHANGE) {
+ auto b = (PDEV_BROADCAST_HDR)lParam;
+diff --git a/src/multimedia/platform/windows/qwindowsmediadevices_p.h b/src/multimedia/platform/windows/qwindowsmediadevices_p.h
+index 29e214d..0dc06a4 100644
+--- a/src/multimedia/platform/windows/qwindowsmediadevices_p.h
++++ b/src/multimedia/platform/windows/qwindowsmediadevices_p.h
+@@ -65,7 +65,7 @@
+ class QWindowsEngine;
+ class CMMNotificationClient;
+
+-LRESULT deviceNotificationWndProc(HWND, UINT, WPARAM, LPARAM);
++LRESULT QT_WIN_CALLBACK deviceNotificationWndProc(HWND, UINT, WPARAM, LPARAM);
+
+ class QWindowsMediaDevices : public QPlatformMediaDevices
+ {
+@@ -88,7 +88,7 @@
+ HDEVNOTIFY m_videoDeviceNotification;
+
+ friend CMMNotificationClient;
+- friend LRESULT deviceNotificationWndProc(HWND, UINT, WPARAM, LPARAM);
++ friend LRESULT QT_WIN_CALLBACK deviceNotificationWndProc(HWND, UINT, WPARAM, LPARAM);
+ };
+
+ QT_END_NAMESPACE
+diff --git a/src/multimedia/video/qvideoframeconversionhelper_avx2.cpp b/src/multimedia/video/qvideoframeconversionhelper_avx2.cpp
+index c17f8a6..cada965 100644
+--- a/src/multimedia/video/qvideoframeconversionhelper_avx2.cpp
++++ b/src/multimedia/video/qvideoframeconversionhelper_avx2.cpp
+@@ -114,17 +114,17 @@
+ convert_to_ARGB32_avx2<0, 1, 2, 3>(frame, output);
+ }
+
+-void qt_convert_ABGR8888_to_ARGB32_avx2(const QVideoFrame &frame, uchar *output)
++void QT_FASTCALL qt_convert_ABGR8888_to_ARGB32_avx2(const QVideoFrame &frame, uchar *output)
+ {
+ convert_to_ARGB32_avx2<0, 3, 2, 1>(frame, output);
+ }
+
+-void qt_convert_RGBA8888_to_ARGB32_avx2(const QVideoFrame &frame, uchar *output)
++void QT_FASTCALL qt_convert_RGBA8888_to_ARGB32_avx2(const QVideoFrame &frame, uchar *output)
+ {
+ convert_to_ARGB32_avx2<3, 0, 1, 2>(frame, output);
+ }
+
+-void qt_convert_BGRA8888_to_ARGB32_avx2(const QVideoFrame &frame, uchar *output)
++void QT_FASTCALL qt_convert_BGRA8888_to_ARGB32_avx2(const QVideoFrame &frame, uchar *output)
+ {
+ convert_to_ARGB32_avx2<3, 2, 1, 0>(frame, output);
+ }
+diff --git a/src/multimedia/video/qvideoframeconversionhelper_sse2.cpp b/src/multimedia/video/qvideoframeconversionhelper_sse2.cpp
+index 8c0092e..68abf04 100644
+--- a/src/multimedia/video/qvideoframeconversionhelper_sse2.cpp
++++ b/src/multimedia/video/qvideoframeconversionhelper_sse2.cpp
+@@ -96,22 +96,22 @@
+
+ }
+
+-void qt_convert_ARGB8888_to_ARGB32_sse2(const QVideoFrame &frame, uchar *output)
++void QT_FASTCALL qt_convert_ARGB8888_to_ARGB32_sse2(const QVideoFrame &frame, uchar *output)
+ {
+ convert_to_ARGB32_sse2<0, 1, 2, 3>(frame, output);
+ }
+
+-void qt_convert_ABGR8888_to_ARGB32_sse2(const QVideoFrame &frame, uchar *output)
++void QT_FASTCALL qt_convert_ABGR8888_to_ARGB32_sse2(const QVideoFrame &frame, uchar *output)
+ {
+ convert_to_ARGB32_sse2<0, 3, 2, 1>(frame, output);
+ }
+
+-void qt_convert_RGBA8888_to_ARGB32_sse2(const QVideoFrame &frame, uchar *output)
++void QT_FASTCALL qt_convert_RGBA8888_to_ARGB32_sse2(const QVideoFrame &frame, uchar *output)
+ {
+ convert_to_ARGB32_sse2<3, 0, 1, 2>(frame, output);
+ }
+
+-void qt_convert_BGRA8888_to_ARGB32_sse2(const QVideoFrame &frame, uchar *output)
++void QT_FASTCALL qt_convert_BGRA8888_to_ARGB32_sse2(const QVideoFrame &frame, uchar *output)
+ {
+ convert_to_ARGB32_sse2<3, 2, 1, 0>(frame, output);
+ }
+diff --git a/src/multimedia/video/qvideoframeconversionhelper_ssse3.cpp b/src/multimedia/video/qvideoframeconversionhelper_ssse3.cpp
+index c1acb9b..a5dfdda 100644
+--- a/src/multimedia/video/qvideoframeconversionhelper_ssse3.cpp
++++ b/src/multimedia/video/qvideoframeconversionhelper_ssse3.cpp
+@@ -105,17 +105,17 @@
+ convert_to_ARGB32_ssse3<0, 1, 2, 3>(frame, output);
+ }
+
+-void qt_convert_ABGR8888_to_ARGB32_ssse3(const QVideoFrame &frame, uchar *output)
++void QT_FASTCALL qt_convert_ABGR8888_to_ARGB32_ssse3(const QVideoFrame &frame, uchar *output)
+ {
+ convert_to_ARGB32_ssse3<0, 3, 2, 1>(frame, output);
+ }
+
+-void qt_convert_RGBA8888_to_ARGB32_ssse3(const QVideoFrame &frame, uchar *output)
++void QT_FASTCALL qt_convert_RGBA8888_to_ARGB32_ssse3(const QVideoFrame &frame, uchar *output)
+ {
+ convert_to_ARGB32_ssse3<3, 0, 1, 2>(frame, output);
+ }
+
+-void qt_convert_BGRA8888_to_ARGB32_ssse3(const QVideoFrame &frame, uchar *output)
++void QT_FASTCALL qt_convert_BGRA8888_to_ARGB32_ssse3(const QVideoFrame &frame, uchar *output)
+ {
+ convert_to_ARGB32_ssse3<3, 2, 1, 0>(frame, output);
+ }
diff --git a/ports/qtmultimedia/FindGObject.patch b/ports/qtmultimedia/FindGObject.patch
new file mode 100644
index 000000000..d8af8a7b5
--- /dev/null
+++ b/ports/qtmultimedia/FindGObject.patch
@@ -0,0 +1,20 @@
+diff --git a/cmake/FindGObject.cmake b/cmake/FindGObject.cmake
+index dc207a2..19a8a67 100644
+--- a/cmake/FindGObject.cmake
++++ b/cmake/FindGObject.cmake
+@@ -27,13 +27,13 @@
+ GLIB2::GLIB2
+ )
+ else()
+- find_path(GGObject_INCLUDE_DIR
++ find_path(GObject_INCLUDE_DIR
+ NAMES gobject.h
+ PATH_SUFFIXES glib-2.0/gobject/
+ )
+ find_library(GObject_LIBRARY NAMES gobject-2.0)
+ if (GObject_LIBRARY AND GObject_INCLUDE_DIR)
+- add_library(GObject::GObject IMPORTED)
++ add_library(GObject::GObject INTERFACE IMPORTED)
+ target_include_directories(GObject::GObject INTERFACE
+ ${GObject_INCLUDE_DIR}
+ )
diff --git a/ports/qtmultimedia/FindGStreamer.patch b/ports/qtmultimedia/FindGStreamer.patch
new file mode 100644
index 000000000..f958c4150
--- /dev/null
+++ b/ports/qtmultimedia/FindGStreamer.patch
@@ -0,0 +1,36 @@
+From 375d2c0ccb602df38ef8f49c5b3e0bf09c24bf46 Mon Sep 17 00:00:00 2001
+From: Joerg Bornemann <joerg.bornemann@qt.io>
+Date: Mon, 13 Sep 2021 10:50:03 +0200
+Subject: Fix build without pkg-config support
+
+Fix several issues in cmake/Find* in the code path that's hit when
+pkg-config is not used.
+
+Pick-to: 6.2
+Task-number: QTBUG-96401
+Change-Id: Iac6af560976ba6408d877027ed44a0354d32d2b7
+Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
+Reviewed-by: Doris Verria <doris.verria@qt.io>
+---
+ cmake/FindGStreamer.cmake | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+(limited to 'cmake/FindGStreamer.cmake')
+
+diff --git a/cmake/FindGStreamer.cmake b/cmake/FindGStreamer.cmake
+index 0624c1a77..c3becd731 100644
+--- a/cmake/FindGStreamer.cmake
++++ b/cmake/FindGStreamer.cmake
+@@ -53,8 +53,8 @@ function(find_gstreamer_component component prefix header library)
+ endif()
+ if(GStreamer_${component}_LIBRARY AND GStreamer_${component}_INCLUDE_DIR)
+ add_library(GStreamer::${component} INTERFACE IMPORTED)
+- target_include_directories(GStreamer::${component} INTERFACE GStreamer_${component}_INCLUDE_DIR)
+- target_link_libraries(GStreamer::${component} INTERFACE GStreamer_${component}_LIBRARY)
++ target_include_directories(GStreamer::${component} INTERFACE ${GStreamer_${component}_INCLUDE_DIR})
++ target_link_libraries(GStreamer::${component} INTERFACE ${GStreamer_${component}_LIBRARY})
+ endif()
+ mark_as_advanced(GStreamer_${component}_INCLUDE_DIR GStreamer_${component}_LIBRARY)
+ endif()
+--
+cgit v1.2.1
diff --git a/ports/qtmultimedia/portfile.cmake b/ports/qtmultimedia/portfile.cmake
index 35d706187..45b1e99b8 100644
--- a/ports/qtmultimedia/portfile.cmake
+++ b/ports/qtmultimedia/portfile.cmake
@@ -1,7 +1,11 @@
set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase")
include("${SCRIPT_PATH}/qt_install_submodule.cmake")
-set(${PORT}_PATCHES fix_windows_header_include.patch)
+set(${PORT}_PATCHES fix_windows_header_include.patch
+ FindGObject.patch
+ FindGStreamer.patch
+ remove_unistd.patch
+ 3c74340.diff)
#Maybe TODO: ALSA + PulseAudio? (Missing Ports)
diff --git a/ports/qtmultimedia/remove_unistd.patch b/ports/qtmultimedia/remove_unistd.patch
new file mode 100644
index 000000000..0f6d3ab15
--- /dev/null
+++ b/ports/qtmultimedia/remove_unistd.patch
@@ -0,0 +1,24 @@
+diff --git a/src/multimedia/platform/gstreamer/audio/qgstreameraudiosink.cpp b/src/multimedia/platform/gstreamer/audio/qgstreameraudiosink.cpp
+index d4806b23a..f985a973b 100644
+--- a/src/multimedia/platform/gstreamer/audio/qgstreameraudiosink.cpp
++++ b/src/multimedia/platform/gstreamer/audio/qgstreameraudiosink.cpp
+@@ -45,7 +45,6 @@
+ #include "qgstreameraudiosink_p.h"
+ #include "qgstreameraudiodevice_p.h"
+ #include <sys/types.h>
+-#include <unistd.h>
+
+ #include <private/qgstpipeline_p.h>
+ #include <private/qgstappsrc_p.h>
+diff --git a/src/multimedia/platform/gstreamer/audio/qgstreameraudiosource.cpp b/src/multimedia/platform/gstreamer/audio/qgstreameraudiosource.cpp
+index 51fc26c42..3b04a77bb 100644
+--- a/src/multimedia/platform/gstreamer/audio/qgstreameraudiosource.cpp
++++ b/src/multimedia/platform/gstreamer/audio/qgstreameraudiosource.cpp
+@@ -45,7 +45,6 @@
+ #include "qgstreameraudiosource_p.h"
+ #include "qgstreameraudiodevice_p.h"
+ #include <sys/types.h>
+-#include <unistd.h>
+
+ #include <gst/gst.h>
+ Q_DECLARE_OPAQUE_POINTER(GstSample *);
diff --git a/ports/qtmultimedia/vcpkg.json b/ports/qtmultimedia/vcpkg.json
index f354e57af..ac882b76d 100644
--- a/ports/qtmultimedia/vcpkg.json
+++ b/ports/qtmultimedia/vcpkg.json
@@ -1,6 +1,7 @@
{
"name": "qtmultimedia",
"version-semver": "6.2.0",
+ "port-version": 1,
"description": "Qt Multimedia",
"homepage": "https://www.qt.io/",
"dependencies": [
@@ -11,6 +12,11 @@
"gui",
"network"
]
+ },
+ {
+ "name": "qtshadertools",
+ "host": true,
+ "default-features": false
}
],
"default-features": [
diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt
index a8543d49c..1b69b56d9 100644
--- a/scripts/ci.baseline.txt
+++ b/scripts/ci.baseline.txt
@@ -413,6 +413,7 @@ graphqlparser:arm-uwp=fail
graphqlparser:x64-uwp=fail
gsl:arm-uwp=fail
gsl:x64-uwp=fail
+gstreamer:x64-osx=fail
gtk:x64-windows-static=fail
gtk:x64-windows-static-md=fail
gts:x64-osx=fail
@@ -647,14 +648,6 @@ libmpeg2:x64-uwp=fail
libmupdf:x64-osx=fail
libmysql:x86-windows=fail
libmysql:arm64-windows=fail
-#The official website of libnice https://nice.freedesktop.org cannot be accessed
-libnice:x86-windows=skip
-libnice:x64-windows=skip
-libnice:x64-windows-static=skip
-libnice:x64-uwp=skip
-libnice:arm64-windows=skip
-libnice:x64-linux=skip
-libnice:x64-osx=skip
libopenmpt:x64-linux=fail
libopenmpt:x64-osx=fail
libopusenc:arm-uwp=fail
diff --git a/versions/baseline.json b/versions/baseline.json
index f50c2f5fd..074755bb4 100644
--- a/versions/baseline.json
+++ b/versions/baseline.json
@@ -5562,7 +5562,7 @@
},
"qtbase": {
"baseline": "6.2.0",
- "port-version": 1
+ "port-version": 2
},
"qtcharts": {
"baseline": "6.2.0",
@@ -5610,7 +5610,7 @@
},
"qtmultimedia": {
"baseline": "6.2.0",
- "port-version": 0
+ "port-version": 1
},
"qtnetworkauth": {
"baseline": "6.2.0",
diff --git a/versions/q-/qtbase.json b/versions/q-/qtbase.json
index 657fa7a5e..c7b1a0fa7 100644
--- a/versions/q-/qtbase.json
+++ b/versions/q-/qtbase.json
@@ -1,6 +1,11 @@
{
"versions": [
{
+ "git-tree": "e7c78fd7fe6600eb96712f151670efc765bf5c31",
+ "version-semver": "6.2.0",
+ "port-version": 2
+ },
+ {
"git-tree": "01075dfd8097c54bd832400553958c2ff9bebf31",
"version-semver": "6.2.0",
"port-version": 1
diff --git a/versions/q-/qtmultimedia.json b/versions/q-/qtmultimedia.json
index 7d485febd..91d75b2b4 100644
--- a/versions/q-/qtmultimedia.json
+++ b/versions/q-/qtmultimedia.json
@@ -1,6 +1,11 @@
{
"versions": [
{
+ "git-tree": "e632d54bc7aea99a619c091cd43ea42e16ccefc2",
+ "version-semver": "6.2.0",
+ "port-version": 1
+ },
+ {
"git-tree": "3ddc9abc52e8df720dd1799b3ecaabe36bb5b7f3",
"version-semver": "6.2.0",
"port-version": 0