# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
# Maintainer: Fabian Bornschein <fabiscafe@archlinux.org>
# Contributor: Jan de Groot <jgc@archlinux.org>

pkgbase=librsvg
pkgname=(
  librsvg
  librsvg-docs
)
pkgver=2.58.0
pkgrel=1.1
epoch=2
pkgdesc="SVG rendering library"
url="https://wiki.gnome.org/Projects/LibRsvg"
arch=(x86_64 aarch64)
license=(LGPL-2.1-or-later)
depends=(
  cairo
  freetype2
  gdk-pixbuf2
  glib2
  harfbuzz
  libxml2
  pango
)
makedepends=(
  gi-docgen
  git
  gobject-introspection
  python-docutils
  rust
  base-devel
)
checkdepends=(ttf-dejavu)
_commit=eb713262e3458b77cfe00d286d7fa0b7968dbb8f  # tags/2.58.0^0
source=(
  "git+https://gitlab.gnome.org/GNOME/librsvg.git#commit=$_commit"
)
b2sums=('45877da3e6797516a90d3df00f9df18aed8b91c1d6725ff3ff51fb48470f8e182f2bb8a9c8d0636588d7e2fed2563920c54013c93814b1a3e7892e515c4ba988')

pkgver() {
  cd librsvg
  git describe --tags | sed 's/[^-]*-g/r&/;s/-/+/g'
}

prepare() {
  cd librsvg
  NOCONFIGURE=1 ./autogen.sh
}

# Use LTO
export CARGO_PROFILE_RELEASE_LTO=true CARGO_PROFILE_RELEASE_CODEGEN_UNITS=1

# Use debug
export CARGO_PROFILE_RELEASE_DEBUG=2

build() {
  local configure_options=(
    --prefix=/usr
    --disable-static
    --enable-gtk-doc
    --disable-vala
  )

  cd librsvg
  ./configure "${configure_options[@]}"
  sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0 /g' libtool
  make
}

check() {
  # Test suite is very dependent on the versions of
  # Cairo, Pango, FreeType and HarfBuzz
  # Tests need nightly features
  RUSTC_BOOTSTRAP=1 make -C librsvg check || :
}

package_librsvg() {
  provides=(librsvg-${pkgver%%.*}.so)

  make -C librsvg DESTDIR="$pkgdir" install

  mkdir -p doc/usr/share
  mv {"$pkgdir",doc}/usr/share/doc
}

package_librsvg-docs() {
  pkgdesc+=" (documentation)"
  depends=()

  mv doc/* "$pkgdir"
}

# vim:set sw=2 sts=-1 et:
