# Contributor: Jakub Jirutka # Contributor: omni # Maintainer: Celeste pkgname=dune pkgver=3.15.1 pkgrel=0 pkgdesc="A composable build system for OCaml (formerly Jbuilder)" url="https://dune.build/" arch="all !riscv64 !loongarch64" # ocaml license="MIT" checkdepends="bash" makedepends="ocaml" provides="jbuilder=$pkgver-r$pkgrel" subpackages="$pkgname-doc $pkgname-emacs::noarch $pkgname-configurator" source="$pkgname-$pkgver.tar.gz::https://github.com/ocaml/dune/archive/$pkgver.tar.gz" options="!check" # FIXME requires ocaml-menhir # 32-bit archs case "$CARCH" in arm*|x86) options="$options textrels" ;; esac prepare() { default_prepare # This allows 'dune --version' to output the correct version instead of "n/a" sed -i "/^(name dune)/a (version $pkgver)" dune-project # This enables dune-configurator to use the vendored csexp module sed -i 's/stdune.csexp/dune-configurator.csexp/' vendor/csexp/src/dune } build() { ./configure --libdir="$(ocamlc -where)" \ --bindir="/usr/bin" --sbindir="/usr/sbin" --etcdir="/etc" \ --mandir="/usr/share/man" --docdir="/usr/share/doc" \ --datadir="/usr/share" ocaml boot/bootstrap.ml --verbose ./dune.exe build \ -p dune,dune-configurator \ --profile dune-bootstrap --verbose } check() { ./dune.exe runtest --verbose } package() { ./dune.exe install \ --destdir="$pkgdir" \ dune dune-configurator # Duplicate of usr/share/doc/dune rm -Rf "$pkgdir"/usr/share/doc/dune-configurator } emacs() { depends="$pkgname" install_if="$pkgname=$pkgver-r$pkgrel emacs" pkgdesc="Emacs plugins for $pkgname" amove usr/share/emacs } configurator() { pkgdesc="System config helper for the Dune OCaml build system" provides="$subpkgname-dev=$pkgver-r$pkgrel" amove usr/lib/ocaml/"$subpkgname" } prepare_py_provides() { local datadir="${subpkgdir:-$pkgdir}" local pkgbasedir=${pkgbasedir:-"$startdir/pkg"} local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname} options_has "!tracedeps" && return 0 ocaml4-abuild-find provides \ "$datadir"/usr/lib/ocaml \ "$controldir" \ "$pkgver-r$pkgrel" } scan_python3_dependency() { local controldir="$2" datadir="$3" ocaml4-abuild-find requires \ "$datadir"/usr/lib/ocaml \ "$controldir" } sha512sums=" 708ca3d487ee845b0e3c464fd5c0ac9b6fcc0d952b5d937a99944a9ae9ca2f037a3520e9f360d50eee925d5853a1f205caee1297920803e3a259dda87c7ebe2c dune-3.15.1.tar.gz "