Browse Source

windows-msys: patch cairo

use_builds_script
Alexandros Theodotou 2 years ago
parent
commit
6625f256b1
Signed by: alex
GPG Key ID: 022EAE42313D70F3
  1. 8
      windows-msys/PKGBUILD-cairo-mingw
  2. 7
      windows-msys/make_mingw_pkg.sh.in
  3. 21
      windows-msys/meson.build
  4. 24
      windows-msys/patches/add_assert_to_cairo_surface.patch

8
windows-msys/PKGBUILD-cairo-mingw

@ -30,12 +30,16 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" @@ -30,12 +30,16 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
)
optdepends=("${MINGW_PACKAGE_PREFIX}-glib2: libcairo-gobject")
options=('strip' 'staticlibs')
source=("https://gitlab.freedesktop.org/cairo/cairo/-/archive/${_commit}/cairo-${_commit}.tar.gz")
sha256sums=('SKIP')
source=("https://gitlab.freedesktop.org/cairo/cairo/-/archive/${_commit}/cairo-${_commit}.tar.gz"
add_assert_to_cairo_surface.patch)
sha256sums=('SKIP'
'SKIP')
prepare() {
mv "${srcdir}/${_realname}-${_commit}" "${srcdir}/${_realname}-${pkgver}"
cd "${srcdir}/${_realname}-${pkgver}"
patch --ignore-whitespace -p1 -i ${srcdir}/add_assert_to_cairo_surface.patch
}
build() {

7
windows-msys/make_mingw_pkg.sh.in

@ -9,6 +9,8 @@ private_dir="$3" @@ -9,6 +9,8 @@ private_dir="$3"
arch="$4"
arch_name="$5"
tarball="$6"
patches="${@:7}"
patches_array=($patches)
pkgname="`basename $pkgbuild`"
pkgname=${pkgname#"PKGBUILD-"}
@ -22,6 +24,11 @@ pacman -R "mingw-w64-$arch_name-$pkgname" --noconfirm || true @@ -22,6 +24,11 @@ pacman -R "mingw-w64-$arch_name-$pkgname" --noconfirm || true
rm -rf $private_dir
mkdir -p $private_dir
cp $pkgbuild $private_dir/PKGBUILD
for patch in "${patches_array[@]}"; do
if ! [ "$patch" = "" ]; then
cp "$patch" $private_dir/
fi
done
if ! [ "$tarball" = "" ]; then
cp "$tarball" $private_dir/
fi

21
windows-msys/meson.build

@ -98,10 +98,17 @@ carla_zip_windows = custom_target ( @@ -98,10 +98,17 @@ carla_zip_windows = custom_target (
make_mingw_pkg_cmd = [
bash, '-c', '@INPUT0@ "$1" "$2" "$3" "$4" ' +
'"$5"',
'"$5" "$6" "$7"',
'_ignored',
'@OUTPUT@', '@INPUT1@', '@PRIVATE_DIR@',
'mingw64', 'x86_64',
'mingw64', 'x86_64', '', '',
]
make_mingw_pkg_cmd_full = [
bash, '-c', '@INPUT0@ "$1" "$2" "$3" "$4" ' +
'"$5" "$6" "$7"',
'_ignored',
'@OUTPUT@', '@INPUT1@', '@PRIVATE_DIR@',
'mingw64', 'x86_64', '', '@INPUT2@',
]
# sources
@ -219,10 +226,16 @@ lilv_pkg = custom_target ( @@ -219,10 +226,16 @@ lilv_pkg = custom_target (
cairo_pkg = custom_target (
'mingw-cairo',
output: 'cairo.pkg.tar.zst',
input: [ make_mingw_pkg, 'PKGBUILD-cairo-mingw', ],
command: make_mingw_pkg_cmd,
input: [
make_mingw_pkg, 'PKGBUILD-cairo-mingw',
'patches/add_assert_to_cairo_surface.patch', ],
command: make_mingw_pkg_cmd_full,
install: false,
)
run_target (
'run-mingw-cairo',
command: [ 'echo', 'done' ],
depends: cairo_pkg)
# get carla binary zips
carla_bin_base_url = 'https://www.zrythm.org/downloads/carla/'

24
windows-msys/patches/add_assert_to_cairo_surface.patch

@ -0,0 +1,24 @@ @@ -0,0 +1,24 @@
diff --git a/src/cairo-surface.c b/src/cairo-surface.c
index 86df1272e..0a95047f3 100644
--- a/src/cairo-surface.c
+++ b/src/cairo-surface.c
@@ -2174,6 +2174,7 @@ _cairo_surface_paint (cairo_surface_t *surface,
const cairo_clip_t *clip)
{
cairo_int_status_t status;
+ cairo_bool_t is_clear;
TRACE ((stderr, "%s\n", __FUNCTION__));
if (unlikely (surface->status))
@@ -2196,8 +2197,9 @@ _cairo_surface_paint (cairo_surface_t *surface,
return status;
status = surface->backend->paint (surface, op, source, clip);
- if (status != CAIRO_INT_STATUS_NOTHING_TO_DO) {
- surface->is_clear = op == CAIRO_OPERATOR_CLEAR && clip == NULL;
+ is_clear = op == CAIRO_OPERATOR_CLEAR && clip == NULL;
+ if (status != CAIRO_INT_STATUS_NOTHING_TO_DO || is_clear) {
+ surface->is_clear = is_clear;
surface->serial++;
}
Loading…
Cancel
Save