Merge pull request #9465 from lazka/clang-gtk4

gtk4: clang fixes
This commit is contained in:
Christoph Reiter
2021-08-26 06:46:17 +02:00
committed by GitHub
3 changed files with 70 additions and 11 deletions

View File

@@ -6,7 +6,7 @@ _realname=gst-plugins-bad
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-gst-plugins-bad-libs" "${MINGW_PACKAGE_PREFIX}-gst-plugins-bad")
pkgver=1.18.4
pkgrel=10
pkgrel=11
pkgdesc="GStreamer Multimedia Framework Bad Plugins (mingw-w64)"
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64')
@@ -18,7 +18,7 @@ makedepends=(
"${MINGW_PACKAGE_PREFIX}-meson"
"${MINGW_PACKAGE_PREFIX}-ninja"
"${MINGW_PACKAGE_PREFIX}-shaderc"
"${MINGW_PACKAGE_PREFIX}-vulkan-headers"
"${MINGW_PACKAGE_PREFIX}-vulkan-loader"
"${MINGW_PACKAGE_PREFIX}-gtk-doc"
"${MINGW_PACKAGE_PREFIX}-aom"
"${MINGW_PACKAGE_PREFIX}-bzip2"
@@ -53,7 +53,6 @@ makedepends=(
"${MINGW_PACKAGE_PREFIX}-libmpcdec"
"${MINGW_PACKAGE_PREFIX}-nettle"
"${MINGW_PACKAGE_PREFIX}-openal"
"${MINGW_PACKAGE_PREFIX}-opencv"
"${MINGW_PACKAGE_PREFIX}-openexr"
"${MINGW_PACKAGE_PREFIX}-openh264"
"${MINGW_PACKAGE_PREFIX}-openjpeg2"
@@ -68,7 +67,7 @@ makedepends=(
"${MINGW_PACKAGE_PREFIX}-vo-amrwbenc"
"${MINGW_PACKAGE_PREFIX}-webrtc-audio-processing"
"${MINGW_PACKAGE_PREFIX}-x265"
"${MINGW_PACKAGE_PREFIX}-zbar"
$([[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]] || echo "${MINGW_PACKAGE_PREFIX}-zbar" "${MINGW_PACKAGE_PREFIX}-opencv")
)
source=(${url}/src/${_realname}/${_realname}-${pkgver}.tar.xz
@@ -93,6 +92,14 @@ build() {
[[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}"
mkdir -p "${srcdir}/build-${MINGW_CHOST}" && cd "${srcdir}/build-${MINGW_CHOST}"
declare -a extra_config
if [[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]]; then
# Missing deps
extra_config+=("-Dopencv=disabled" "-Dzbar=disabled")
# FIXME: broken build
extra_config+=("-Dd3d11=disabled")
fi
MSYS2_ARG_CONV_EXCL="--prefix=" \
${MINGW_PREFIX}/bin/meson.exe \
--prefix="${MINGW_PREFIX}" \
@@ -143,6 +150,7 @@ build() {
-Davtp=disabled \
-Dsvthevcenc=disabled \
-Dzxing=disabled \
"${extra_config[@]}" \
../${_realname}-${pkgver}
${MINGW_PREFIX}/bin/ninja.exe
@@ -163,7 +171,10 @@ package_gst-plugins-bad-libs() {
mkdir -p _plugins/lib
mkdir -p _plugins/bin
mv "${pkgdir}${MINGW_PREFIX}/lib/gstreamer-1.0" _plugins/lib
mv "${pkgdir}${MINGW_PREFIX}/bin/libgstopencv-1.0-0.dll" _plugins/bin
if [[ ${MINGW_PACKAGE_PREFIX} != *-clang-* ]]; then
mv "${pkgdir}${MINGW_PREFIX}/bin/libgstopencv-1.0-0.dll" _plugins/bin
fi
}
package_gst-plugins-bad() {
@@ -202,7 +213,6 @@ package_gst-plugins-bad() {
"${MINGW_PACKAGE_PREFIX}-libmpcdec"
"${MINGW_PACKAGE_PREFIX}-nettle"
"${MINGW_PACKAGE_PREFIX}-openal"
"${MINGW_PACKAGE_PREFIX}-opencv"
"${MINGW_PACKAGE_PREFIX}-openexr"
"${MINGW_PACKAGE_PREFIX}-openh264"
"${MINGW_PACKAGE_PREFIX}-openjpeg2"
@@ -217,7 +227,7 @@ package_gst-plugins-bad() {
"${MINGW_PACKAGE_PREFIX}-vo-amrwbenc"
"${MINGW_PACKAGE_PREFIX}-webrtc-audio-processing"
"${MINGW_PACKAGE_PREFIX}-x265"
"${MINGW_PACKAGE_PREFIX}-zbar"
$([[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]] || echo "${MINGW_PACKAGE_PREFIX}-zbar" "${MINGW_PACKAGE_PREFIX}-opencv")
)
cd "${srcdir}/build-${MINGW_CHOST}"

46
mingw-w64-gtk4/3887.patch Normal file
View File

@@ -0,0 +1,46 @@
From b3bb216229146b6dcc522b9b7e2d1f2435cacf71 Mon Sep 17 00:00:00 2001
From: Christoph Reiter <reiter.christoph@gmail.com>
Date: Thu, 26 Aug 2021 05:14:18 +0200
Subject: [PATCH] build: fix implicit-fallthrough errors with clang
The clang build fails due to -Werror=implicit-fallthrough being
on by default and some fallthrough cases not being marked as such.
Use G_GNUC_FALLTHROUGH or duplicate the code in those cases.
---
gtk/gtkimcontextime.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/gtk/gtkimcontextime.c b/gtk/gtkimcontextime.c
index c8378c836e..102eccec38 100644
--- a/gtk/gtkimcontextime.c
+++ b/gtk/gtkimcontextime.c
@@ -667,6 +667,7 @@ gtk_im_context_ime_focus_in (GtkIMContext *context)
switch (context_ime->priv->focus_behavior)
{
case GTK_WIN32_IME_FOCUS_BEHAVIOR_COMMIT:
+ G_GNUC_FALLTHROUGH;
case GTK_WIN32_IME_FOCUS_BEHAVIOR_DISCARD:
gtk_im_context_ime_reset (context);
break;
@@ -724,7 +725,7 @@ gtk_im_context_ime_focus_out (GtkIMContext *context)
context_ime->priv->pretend_empty_preedit = FALSE;
g_free (utf8str);
}
- /* fallthrough */
+ G_GNUC_FALLTHROUGH;
case GTK_WIN32_IME_FOCUS_BEHAVIOR_DISCARD:
gtk_im_context_ime_reset (context);
@@ -1054,7 +1055,7 @@ gtk_im_context_ime_message_filter (GdkWin32Display *display,
default:
break;
}
-
+ break;
default:
break;
}
--
GitLab

View File

@@ -4,7 +4,7 @@ _realname=gtk4
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=4.4.0
pkgrel=1
pkgrel=2
pkgdesc="GObject-based multi-platform GUI toolkit (v4) (mingw-w64)"
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64')
@@ -28,14 +28,17 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
"${MINGW_PACKAGE_PREFIX}-gtk-update-icon-cache"
"${MINGW_PACKAGE_PREFIX}-gst-plugins-bad-libs"
"${MINGW_PACKAGE_PREFIX}-ffmpeg"
"${MINGW_PACKAGE_PREFIX}-vulkan-loader"
"${MINGW_PACKAGE_PREFIX}-shared-mime-info")
source=("https://download.gnome.org/sources/gtk/${pkgver:0:3}/gtk-${pkgver}.tar.xz")
sha256sums=('e0a1508f441686c3a20dfec48af533b19a4b2e017c18eaee31dccdb7d292505b')
source=("https://download.gnome.org/sources/gtk/${pkgver:0:3}/gtk-${pkgver}.tar.xz"
"3887.patch")
sha256sums=('e0a1508f441686c3a20dfec48af533b19a4b2e017c18eaee31dccdb7d292505b'
'70efcdf6affc8efa7a4e8c03054d46eced3b3c4a401a43da57dc0157e9b71899')
prepare() {
cd "${srcdir}/gtk-${pkgver}"
# https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/3887
patch -p1 -i "${srcdir}"/3887.patch
}
build() {