summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorGonzalo Exequiel Pedone2024-02-12 12:26:46 -0300
committerGonzalo Exequiel Pedone2024-02-12 12:26:46 -0300
commit1084629afe21e9f9067d9085cd9d522b80571589 (patch)
tree555db5e29cda15e42fed7db484494decdf743f7a
downloadaur-1084629afe21e9f9067d9085cd9d522b80571589.tar.gz
New package.
-rw-r--r--.SRCINFO28
-rw-r--r--.gitignore3
-rw-r--r--0001-Added-missing-headers-and-symbols.patch27
-rw-r--r--0026-create-argb-fonts.all.patch22
-rw-r--r--PKGBUILD62
5 files changed, 142 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..435bff33a400
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,28 @@
+pkgbase = android-armv7a-eabi-cairo-bootstrap
+ pkgdesc = 2D graphics library with support for multiple output devices (android bootstrap)
+ pkgver = 1.18.0
+ pkgrel = 1
+ url = http://cairographics.org/
+ arch = any
+ license = LGPL
+ license = MPL
+ makedepends = android-meson
+ depends = android-armv7a-eabi-pixman
+ depends = android-armv7a-eabi-glib2
+ depends = android-armv7a-eabi-fontconfig
+ depends = android-armv7a-eabi-libpng
+ depends = android-armv7a-eabi-lzo
+ provides = android-armv7a-eabi-cairo
+ conflicts = android-armv7a-eabi-cairo
+ options = !strip
+ options = !buildflags
+ options = staticlibs
+ options = !emptydirs
+ source = https://gitlab.freedesktop.org/cairo/cairo/-/archive/1.18.0/cairo-1.18.0.tar.gz
+ source = 0001-Added-missing-headers-and-symbols.patch
+ source = 0026-create-argb-fonts.all.patch
+ sha256sums = 39a78afdc33a435c0f2ab53a5ec2a693c3c9b6d2ec9783ceecb2b94d54d942b0
+ sha256sums = a73c90af559d4fb2e72bdd80ebc624b19579f3df0e9c0ad6e8af9aef41e7789a
+ sha256sums = 6db6c44fbdb4926d09afa978fe80430186c4b7b7d255059602b1f94c6a079975
+
+pkgname = android-armv7a-eabi-cairo-bootstrap
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000000..f46de972b6fc
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+pkg/
+src/
+*.xz
diff --git a/0001-Added-missing-headers-and-symbols.patch b/0001-Added-missing-headers-and-symbols.patch
new file mode 100644
index 000000000000..faadcaa72bfc
--- /dev/null
+++ b/0001-Added-missing-headers-and-symbols.patch
@@ -0,0 +1,27 @@
+--- a/src/cairo-ft-private.h
++++ b/src/cairo-ft-private.h
+@@ -38,6 +38,8 @@
+ #ifndef CAIRO_FT_PRIVATE_H
+ #define CAIRO_FT_PRIVATE_H
+
++#include <freetype/ftcolor.h>
++
+ #include "cairoint.h"
+ #include "cairo-ft.h"
+
+--- a/util/malloc-stats.c
++++ b/util/malloc-stats.c
+@@ -117,7 +117,13 @@
+ for (i = 0; i < num; i++)
+ addrs[i] = (void *) func_stats[i].addr;
+
++#if defined(__ANDROID_API__) && __ANDROID_API__ >= 33
+ strings = backtrace_symbols (addrs, num);
++#else
++ strings = malloc (num * sizeof (char *));
++ for (i = 0; i < num; i++)
++ strings[i] = "unknown";
++#endif
+
+ for (i = 0; i < num; i++) {
+ char *p;
diff --git a/0026-create-argb-fonts.all.patch b/0026-create-argb-fonts.all.patch
new file mode 100644
index 000000000000..866b49f8a8b7
--- /dev/null
+++ b/0026-create-argb-fonts.all.patch
@@ -0,0 +1,22 @@
+--- cairo-bb17403622e9ea474017e0039af8ee48b2b285db/src/win32/cairo-win32-font.c.orig 2014-04-02 04:16:04.638143700 +0000
++++ cairo-bb17403622e9ea474017e0039af8ee48b2b285db/src/win32/cairo-win32-font.c 2014-04-05 20:10:47.108309200 +0000
+@@ -1600,7 +1600,7 @@
+ width = x2 - x1;
+ height = y2 - y1;
+
+- surface = cairo_win32_surface_create_with_dib (CAIRO_FORMAT_RGB24,
++ surface = cairo_win32_surface_create_with_dib (CAIRO_FORMAT_ARGB32,
+ width, height);
+ status = _cairo_surface_paint (surface, CAIRO_OPERATOR_SOURCE,
+ &_cairo_pattern_white.base, NULL);
+--- cairo-bb17403622e9ea474017e0039af8ee48b2b285db/src/win32/cairo-win32-surface.c.orig 2014-03-21 13:10:19.000000000 +0000
++++ cairo-bb17403622e9ea474017e0039af8ee48b2b285db/src/win32/cairo-win32-surface.c 2014-04-05 20:12:14.176865500 +0000
+@@ -227,7 +227,7 @@
+
+ /* We can only handle opaque solid color sources and destinations */
+ assert (_cairo_pattern_is_opaque_solid(source));
+- assert (dst->format == CAIRO_FORMAT_RGB24);
++ assert (dst->format == CAIRO_FORMAT_RGB24 || dst->format == CAIRO_FORMAT_ARGB32);
+
+ solid_pattern = (cairo_solid_pattern_t *)source;
+ color = RGB(((int)solid_pattern->color.red_short) >> 8,
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..f271af947504
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,62 @@
+# Maintainer: Gonzalo Exequiel Pedone <hipersayan DOT x AT gmail DOT com>
+# Contributor: drakkan <nicola.murino at gmail dot com>
+# Contributor: Chris Kitching <chriskitching@linux.com>
+# Contributor: Xiao-Long Chen <chenxiaolong@cxl.epac.to>
+
+_android_arch=armv7a-eabi
+
+pkgname=android-${_android_arch}-cairo-bootstrap
+pkgver=1.18.0
+pkgrel=1
+arch=('any')
+pkgdesc="2D graphics library with support for multiple output devices (android bootstrap)"
+depends=("android-${_android_arch}-pixman"
+ "android-${_android_arch}-glib2"
+ "android-${_android_arch}-fontconfig"
+ "android-${_android_arch}-libpng"
+ "android-${_android_arch}-lzo")
+provides=("android-${_android_arch}-cairo")
+conflicts=("android-${_android_arch}-cairo")
+makedepends=('android-meson')
+options=(!strip !buildflags staticlibs !emptydirs)
+license=("LGPL" "MPL")
+url="http://cairographics.org/"
+source=("https://gitlab.freedesktop.org/cairo/cairo/-/archive/${pkgver}/cairo-${pkgver}.tar.gz"
+ "0001-Added-missing-headers-and-symbols.patch"
+ "0026-create-argb-fonts.all.patch")
+sha256sums=('39a78afdc33a435c0f2ab53a5ec2a693c3c9b6d2ec9783ceecb2b94d54d942b0'
+ 'a73c90af559d4fb2e72bdd80ebc624b19579f3df0e9c0ad6e8af9aef41e7789a'
+ '6db6c44fbdb4926d09afa978fe80430186c4b7b7d255059602b1f94c6a079975')
+
+prepare() {
+ cd "${srcdir}/cairo-${pkgver}"
+ patch -Np1 -i ../0001-Added-missing-headers-and-symbols.patch
+ patch -Np1 -i ../0026-create-argb-fonts.all.patch
+}
+
+build() {
+ cd "${srcdir}/cairo-${pkgver}"
+ source android-env ${_android_arch}
+
+ export C_INCLUDE_PATH="${ANDROID_PREFIX_INCLUDE}/freetype2:${ANDROID_PREFIX_INCLUDE}/pixman-1:${ANDROID_PREFIX_INCLUDE}/libpng:${ANDROID_PREFIX_INCLUDE}/glib-2.0:${ANDROID_PREFIX_LIB}/glib-2.0/include:${ANDROID_PREFIX_INCLUDE}"
+
+ mkdir -p build
+ cd build
+ android-${_android_arch}-meson \
+ -D spectre=disabled \
+ -D dwrite=disabled \
+ -D freetype=enabled \
+ -D fontconfig=enabled \
+ -D tests=disabled \
+ -D symbol-lookup=disabled \
+ -D gtk_doc=false \
+ --buildtype=release \
+ --default-library=both
+ ninja
+}
+
+package() {
+ DESTDIR="${pkgdir}" ninja -C "${srcdir}/cairo-${pkgver}/build" install
+ ${ANDROID_STRIP} -g "$pkgdir"/${ANDROID_PREFIX_LIB}/*.a || true
+ ${ANDROID_STRIP} -g --strip-unneeded "${pkgdir}"/${ANDROID_PREFIX_LIB}/*.so
+}