# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=inkscape
pkgver=1.4
_pkgdate=2024-10-09
_pkgcommit=e7c3feb100
pkgrel=0
pkgdesc="Vector-based drawing program - svg compliant"
url="https://inkscape.org/"
arch="all"
license="GPL-2.0-or-later AND LGPL-2.1-or-later"
depends="
	adwaita-icon-theme
	desktop-file-utils
	py3-cssselect
	py3-lxml
	py3-numpy
	"
makedepends="
	boost-dev
	cmake
	dbus-dev
	font-dejavu
	gc-dev
	graphicsmagick-dev
	gtkmm3-dev
	gspell-dev
	lcms2-dev
	lib2geom-dev
	libcdr-dev
	libjpeg-turbo-dev
	libsoup-dev
	libtool
	libvisio-dev
	libxml2-dev
	libxslt-dev
	perl
	poppler-dev
	popt-dev
	potrace-dev
	python3-dev
	samurai
	"
checkdepends="
	bash
	gtest-dev
	imagemagick
	"
subpackages="
	$pkgname-dbg
	libinkscape_base
	$pkgname-doc
	$pkgname-tutorials::noarch
	$pkgname-lang
	$pkgname-view
	$pkgname-bash-completion
	$pkgname-minwaita::noarch
	$pkgname-icon-theme-tango:_icon_theme:noarch
	$pkgname-icon-theme-hicolor:_icon_theme:noarch
	$pkgname-icon-theme-multicolor:_icon_theme:noarch
	"
source="https://media.inkscape.org/dl/resources/file/inkscape-$pkgver.tar.xz"
options="!check" # take extremely long and use absurd amounts of memory
ldpath="/usr/lib/inkscape"
builddir="$srcdir"/$pkgname-${pkgver}_${_pkgdate}_$_pkgcommit

build() {
	if [ "$CBUILD" != "$CHOST" ]; then
		CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
	fi
	# reduce size of debug syms
	CFLAGS="$CFLAGS -O2 -DNDEBUG -g1" \
	CXXFLAGS="$CXXFLAGS -Wno-deprecated-declarations -O2 -DNDEBUG -g1" \
	cmake -B build -G Ninja \
		-DCMAKE_BUILD_TYPE=None \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DCMAKE_INSTALL_LIBDIR=lib \
		-DBUILD_SHARED_LIBS=True \
		-DBUILD_TESTING="$(want_check && echo ON || echo OFF)" \
		$CMAKE_CROSSOPTS
	cmake --build build
}

check() {
	INKSCAPE_DATADIR="$builddir/share" \
	PATH="$PATH:$PWD" ninja -C build check
}

package() {
	depends="libinkscape_base=$pkgver-r$pkgrel"
	DESTDIR="$pkgdir" cmake --install build
}

view() {
	pkgdesc="Viewing program for SVG files"
	depends="libinkscape_base=$pkgver-r$pkgrel"
	amove usr/bin/inkview
}

doc() {
	default_doc
	amove usr/share/inkscape/examples \
		usr/share/inkscape/doc \
		'usr/share/inkscape/*/LICENSE.txt' \
		'usr/share/inkscape/extensions/*/*/LICENSE.txt' \
		usr/share/inkscape/extensions/svg_fonts/OFL.txt
}

tutorials() {
	depends=
	pkgdesc="$pkgdesc (tutorials)"

	amove usr/share/inkscape/tutorials
}

minwaita() {
	depends=
	pkgdesc="$pkgdesc (minwaita theme)"
	install_if="$pkgname=$pkgver-r$pkgrel"

	amove usr/share/inkscape/themes/Minwaita-Inkscape
}

_icon_theme() {
	name="${subpkgname#"$pkgname"-icon-theme-}"
	depends=
	pkgdesc="$pkgdesc ($name icon theme)"
	install_if="$pkgname=$pkgver-r$pkgrel"

	case "$name" in
		tango) name=Tango;;
	esac
	amove usr/share/inkscape/icons/"$name"
}

libinkscape_base() {
	depends=
	pkgdesc="base libinkscape_base.so to share with inkview"

	amove usr/lib/inkscape/libinkscape_base.so*
}

sha512sums="
3b81306b81416597073e7eda2a103112cee63493bcf96fa737bb1edfbd682ebb329e415bbbbfda877aef2a78dc376460040ebc5c0cc2c90c0fe60db5d7d12368  inkscape-1.4.tar.xz
"
