# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=cairo
pkgver=1.18.4
pkgrel=0
pkgdesc="A vector graphics library"
url="https://cairographics.org/"
arch="all"
options="!check"  # Recursive dependency on gtk+2.0 for check.
license="LGPL-2.1-or-later OR MPL-1.1"
depends_dev="
	$pkgname-tools=$pkgver-r$pkgrel
	fontconfig-dev
	freetype-dev
	libxext-dev
	libxrender-dev
	pixman-dev
	xcb-util-dev
	"
makedepends="
	$depends_dev
	expat-dev
	glib-dev
	gtk-doc
	libpng-dev
	meson
	zlib-dev
	"
subpackages="
	$pkgname-dbg
	$pkgname-static
	$pkgname-dev
	$pkgname-doc
	$pkgname-gobject
	$pkgname-tools
	"
source="https://gitlab.freedesktop.org/cairo/cairo/-/archive/$pkgver/cairo-$pkgver.tar.bz2
	musl-stacksize.patch
	"

# secfixes:
#   1.17.4-r1:
#     - CVE-2019-6462
#   1.16.0-r2:
#     - CVE-2020-35492
#   1.16.0-r1:
#     - CVE-2018-19876

build() {
	abuild-meson \
		-Db_lto=true \
		-Ddefault_library=both \
		-Dgtk_doc=true \
		-Dtests="$(want_check && echo enabled || echo disabled)" \
		-Dfontconfig=enabled \
		-Dfreetype=enabled \
		-Dglib=enabled \
		-Dpng=enabled \
		-Dtee=enabled \
		-Dxcb=enabled \
		-Dxlib=enabled \
		-Dzlib=enabled \
		. output
	meson compile -C output
}

check() {
	meson test --print-errorlogs -C output
}

package() {
	DESTDIR="$pkgdir" meson install --no-rebuild -C output
}

gobject() {
	pkgdesc="$pkgdesc (gobject bindings)"

	amove usr/lib/libcairo-gobject.so.*
}

tools() {
	pkgdesc="$pkgdesc (development tools)"

	amove usr/bin
	amove usr/lib/cairo/libcairo-trace.*
}

sha512sums="
27b98a17510b4d6f0187fcb280fea1b47ae31243f6999081a7ac94f8cf3c789c05fa6eb0fe65844808ef9ac11bcd29a4c3688c871a6950d888667840385acf9b  cairo-1.18.4.tar.bz2
86f26fe41deb5e14f553c999090d1ec1d92a534fa7984112c9a7f1d6c6a8f1b7bb735947e8ec3f26e817f56410efe8cc46c5e682f6a278d49b40a683513740e0  musl-stacksize.patch
"
