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

_pkgname=glib2
pkgname=static-compat-$_pkgname
pkgver=2.76.3
pkgrel=1
pkgdesc="Low level core library"
url="https://wiki.gnome.org/Projects/GLib"
license=(LGPL)
arch=(x86_64)
depends=(static-compat-pcre2 static-compat-libffi static-compat-util-linux static-compat-zlib)
makedepends=(gettext shared-mime-info python libelf git static-compat-meson)
checkdepends=(desktop-file-utils)
options=(!strip !emptydirs staticlibs)
_commit=69e209764bcfef599a21b32f82f88f1906bf197c  # tags/2.76.3^0
source=(
  "git+https://gitlab.gnome.org/GNOME/glib.git#commit=$_commit"
  "git+https://gitlab.gnome.org/GNOME/gvdb.git"
  0001-glib-compile-schemas-Remove-noisy-deprecation-warnin.patch
  0002-glocalfile-Sum-apparent-size-only-for-files-and-syml.patch
  0003-tests-file-Do-not-rely-on-du-bytes-behaviour.patch
)
b2sums=('SKIP'
        'SKIP'
        'bd7f881ae6054c363783bf45b1add5eef5e8347554e23b9fece526701469d07cdcb9871fa73dee473796a219e8aa513796a96da769949097ea207db038578d07'
        '6bcbcba60208162f7221701d6a642eabfc92c2fc6a476bcb42da5967577f8f0c75b688d149be01c9c48cd644aafa7fbdd63d9086385b8f7607fc981756d71a68'
        '257bf37d304cc161dedcde0a2c4d01e297f8263cde48b49d3ee47ca95a8fb9ad44bbb9bf99da51ec766ffb6f9d502e0a8fdc6b86346e6755373ee515e23b9419')

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

prepare() {
  cd glib

  # Suppress noise from glib-compile-schemas.hook
  git apply -3 ../0001-glib-compile-schemas-Remove-noisy-deprecation-warnin.patch

  # fix test suite issues with coreutils >=9.2
  # https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3358
  git apply -3 ../0002-glocalfile-Sum-apparent-size-only-for-files-and-syml.patch
  git apply -3 ../0003-tests-file-Do-not-rely-on-du-bytes-behaviour.patch

  git submodule init
  git submodule set-url subprojects/gvdb "$srcdir/gvdb"
  git -c protocol.file.allow=always submodule update
}

build() {
  export CFLAGS+=" -DG_DISABLE_CAST_CHECKS"
  export LDFLAGS+=" -lblkid"
  source static-compat-environment
  static-compat-meson glib build \
    -D selinux=disabled \
    -Dsysprof=disabled \
    -D man=false \
    -D gtk_doc=false
  meson compile -C build
}

check() {
  source static-compat-environment
  meson test -C build --no-suite flaky --no-suite slow --print-errorlogs || true
}

package() {
  source static-compat-environment
  DESTDIR="$pkgdir" meson install -C build

  # Strip messes up the LTO-enabled archive's index so strip libs manually and then run ranlib again
  find "$pkgdir" -name '*.a' -exec strip $STRIP_STATIC {} \;
  find "$pkgdir" -name '*.a' -exec ranlib {} \;

  export PYTHONHASHSEED=0
  python -m compileall -d "$static_compat_prefix"/share/glib-2.0/codegen \
    "$pkgdir/$static_compat_prefix/share/glib-2.0/codegen"
  python -O -m compileall -d "$static_compat_prefix"/share/glib-2.0/codegen \
    "$pkgdir/$static_compat_prefix/share/glib-2.0/codegen"
}

# vim:set sw=2 et:
