/
PKGBUILD
112 lines (97 loc) · 3.77 KB
/
PKGBUILD
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# Maintainer: Christoph Reiter <reiter.christoph@gmail.com>
_realname=gtk4
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}"
"${MINGW_PACKAGE_PREFIX}-${_realname}-media-gstreamer")
pkgver=4.14.3
pkgrel=1
pkgdesc="GObject-based multi-platform GUI toolkit (v4) (mingw-w64)"
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32' 'clangarm64')
url="https://www.gtk.org"
msys2_repository_url="https://gitlab.gnome.org/GNOME/gtk/"
msys2_references=(
"cpe: cpe:/a:gnome:gtk"
"cpe: cpe:/a:gtk:gtk%2b"
)
license=('spdx:LGPL-2.1-or-later')
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
"${MINGW_PACKAGE_PREFIX}-pkgconf"
"${MINGW_PACKAGE_PREFIX}-gobject-introspection"
"${MINGW_PACKAGE_PREFIX}-sassc"
"${MINGW_PACKAGE_PREFIX}-meson"
"${MINGW_PACKAGE_PREFIX}-python-docutils"
"${MINGW_PACKAGE_PREFIX}-gi-docgen"
"${MINGW_PACKAGE_PREFIX}-gst-plugins-bad-libs")
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
"${MINGW_PACKAGE_PREFIX}-adwaita-icon-theme"
"${MINGW_PACKAGE_PREFIX}-cairo"
"${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2"
"${MINGW_PACKAGE_PREFIX}-glib2"
"${MINGW_PACKAGE_PREFIX}-graphene"
"${MINGW_PACKAGE_PREFIX}-json-glib"
"${MINGW_PACKAGE_PREFIX}-libepoxy"
"${MINGW_PACKAGE_PREFIX}-pango"
"${MINGW_PACKAGE_PREFIX}-gtk-update-icon-cache"
"${MINGW_PACKAGE_PREFIX}-shared-mime-info")
source=("https://download.gnome.org/sources/gtk/${pkgver:0:4}/gtk-${pkgver}.tar.xz"
"https://gitlab.gnome.org/GNOME/gtk/-/commit/b569470b87d143d30c2388046c9a6450696f19b8.patch"
"0001-ngl-icon-drawing-fix.patch")
sha256sums=('2be5c858bdef1104d37848c9779c089372c8d31503f6efc4b94e53b546fc9a43'
'50e6ac71f2081f80d334a5be5c8c49b9c1c3fab001c1f4ca0f2556d7f2ec92ed'
'1532566146f18e768901e2ddb2cd69c3fe4f2c2efafe72a62c1ee6155feb982b')
prepare() {
cd gtk-${pkgver}
# https://github.com/msys2/MINGW-packages/pull/20311#issuecomment-2014971531
patch -R -Np1 -i ../b569470b87d143d30c2388046c9a6450696f19b8.patch
# https://gitlab.gnome.org/GNOME/gtk/-/issues/6564#note_2059394
patch -Np1 -i ../0001-ngl-icon-drawing-fix.patch
}
build() {
mkdir -p build-${MSYSTEM} && cd build-${MSYSTEM}
declare -a extra_config
if check_option "debug" "n"; then
extra_config+=("--buildtype=release")
else
extra_config+=("--buildtype=debug")
fi
MSYS2_ARG_CONV_EXCL="--prefix=" \
${MINGW_PREFIX}/bin/meson.exe setup \
--prefix="${MINGW_PREFIX}" \
--wrap-mode=nodownload \
--auto-features=enabled \
"${extra_config[@]}" \
-Dbuild-examples=false \
-Dbuild-tests=false \
-Dman-pages=true \
-Dmacos-backend=false \
-Dx11-backend=false \
-Dwayland-backend=false \
-Dwin32-backend=true \
-Dvulkan=disabled \
-Dintrospection=enabled \
../gtk-${pkgver}
${MINGW_PREFIX}/bin/meson.exe compile
}
package_gtk4() {
${MINGW_PREFIX}/bin/meson.exe install -C "${srcdir}/build-${MSYSTEM}" --destdir "${pkgdir}"
install -Dm644 "${srcdir}/gtk-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING"
# split media-gstreamer
mkdir -p dest${MINGW_PREFIX}/lib
mv "${pkgdir}${MINGW_PREFIX}"/lib/gtk-4.0 dest${MINGW_PREFIX}/lib/gtk-4.0
}
package_gtk4-media-gstreamer() {
pkgdesc+=" (GStreamer media plugin)"
depends=("${MINGW_PACKAGE_PREFIX}-gtk4"
"${MINGW_PACKAGE_PREFIX}-gst-plugins-bad-libs")
mv dest/* "${pkgdir}"
}
# template start; name=mingw-w64-splitpkg-wrappers; version=1.0;
# vim: set ft=bash :
# generate wrappers
for _name in "${pkgname[@]}"; do
_short="package_${_name#${MINGW_PACKAGE_PREFIX}-}"
_func="$(declare -f "${_short}")"
eval "${_func/#${_short}/package_${_name}}"
done
# template end;