# Maintainer: Kyle Keen <keenerd@gmail.com>
# Contributor: Eric Bélanger <eric@archlinux.org>

pkgbase=racket
pkgname=(racket racket-minimal)
pkgver=8.2
pkgrel=1
pkgdesc="A full-spectrum language with DrRacket IDE.  Formerly known as PLT Scheme."
arch=('x86_64')
url="https://racket-lang.org/"
license=('Apache' 'GPL3' 'LGPL3' 'custom')
depends=('gtk3')
makedepends=('gsfonts' 'sqlite')
options=('!strip' '!emptydirs')
conflicts=('racket-docs')
replaces=('racket-docs')
source=("https://download.racket-lang.org/installers/${pkgver}/${pkgname}-${pkgver}-src.tgz")
# "https://mirror.racket-lang.org/installers/${pkgver}/racket-minimal-${pkgver}-src.tgz"
sha1sums=('6f40246626ea8789c0a9403509104fc26dece29c')

prepare() {
  cd "$pkgbase-$pkgver"
  echo "Icon=drracket" >> share/pkgs/drracket/drracket/drracket.desktop
}

build() {
  cd "$pkgbase-$pkgver/src"
  [ "$CARCH" == "x86_64" ] && export CFLAGS+=" -fPIC"
  ./configure --prefix=/usr --sysconfdir=/etc --enable-shared
  make
}

package_racket() {
  cd "$pkgbase-$pkgver/src"
  make DESTDIR="$pkgdir" install

  install -Dm644 -t "$pkgdir/usr/share/licenses/$pkgname/" LICENSE*.txt
  install -Dm644 ../share/pkgs/drracket/drracket/drracket.desktop "$pkgdir/usr/share/applications/drracket.desktop"
  install -d "$pkgdir"/usr/share/icons/hicolor/scalable/apps
  ln -s /usr/share/racket/pkgs/icons/racket-logo.svg "$pkgdir/usr/share/icons/hicolor/scalable/apps/drracket.svg"
}

package_racket-minimal() {
  pkgdesc="Minimal Racket installation, without DrRacket/docs."
  depends=('libffi')
  conflicts=('racket')
  provides=('racket')
  replaces=()

  # The -minimal tarball uses the SAME extract path.
  # 99% identical sources anyway, manually apply the difference.
  # Thankfully these builds happen in the given order
  # so we can save some time and reuse the previous build.
  cd "$pkgbase-$pkgver"
  echo '((root "pkgs/racket-lib"))' > share/links.rktd
  _libhash=$(grep -oP '\("racket-lib".*?#f\)\)' share/pkgs/pkgs.rktd)
  echo "#hash($_libhash)" > share/pkgs/pkgs.rktd
  cd share/pkgs
  find . -not -name '.' -not -name '*pkgs.rktd' -not -regex '.*/racket-lib.*' -delete
  cd ../../src

  make DESTDIR="${pkgdir}" install

  find "$pkgdir/usr/share/doc/" -delete
  install -d "$pkgdir/usr/share/doc/racket/"
  touch "$pkgdir/usr/share/doc/racket/docindex.sqlite"  # FS#60413

  install -Dm644 -t "$pkgdir/usr/share/licenses/$pkgname/" LICENSE*.txt
}
