aboutsummaryrefslogtreecommitdiffstats
path: root/testing/merlin/APKBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'testing/merlin/APKBUILD')
-rw-r--r--testing/merlin/APKBUILD98
1 files changed, 74 insertions, 24 deletions
diff --git a/testing/merlin/APKBUILD b/testing/merlin/APKBUILD
index 88f14948cdd..9e39c0b49ce 100644
--- a/testing/merlin/APKBUILD
+++ b/testing/merlin/APKBUILD
@@ -1,37 +1,55 @@
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
-# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=merlin
-pkgver=3.0.5
+pkgver=4.14
+_ocamlver=4.14
+_pkgver="$pkgver-${_ocamlver//./}"
pkgrel=0
pkgdesc="Context sensitive completion for OCaml"
url="https://ocaml.github.io/merlin/"
-arch="all !x86 !armhf !armv7 !s390x" # limited by ocaml aport
+arch="all !riscv64 !loongarch64" # ocaml
license="MIT"
-depends="ocaml ocaml-findlib"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
makedepends="
+ dune
ocaml
+ ocaml-csexp-dev
ocaml-findlib-dev
+ ocaml-menhir-dev
ocaml-yojson-dev
"
-options="!check" # XXX: tests are broken, see https://github.com/ocaml/merlin/issues/766
-subpackages="$pkgname-emacs::noarch $pkgname-vim::noarch"
-source="$pkgname-$pkgver.tar.gz::https://github.com/ocaml/$pkgname/archive/v$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
+checkdepends="cmd:menhir jq ocaml-ppxlib-dev"
+options="!check" # requires annotation and source files that we delete in ocaml
+subpackages="
+ $pkgname-dev
+ $pkgname-emacs::noarch
+ $pkgname-vim::noarch
+ "
+source="$pkgname-$_pkgver.tar.bz2::https://github.com/ocaml/merlin/releases/download/v$_pkgver/merlin-$_pkgver.tbz"
+builddir="$srcdir/$pkgname-$_pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
build() {
- cd "$builddir"
- ./configure --prefix /usr
- make
+ dune build -p merlin,merlin-lib,dot-merlin-reader \
+ @install --no-buffer --verbose
}
check() {
- cd "$builddir"
- make test
+ dune runtest --build-dir=.testenv --no-buffer --verbose
}
package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit \
+ merlin merlin-lib dot-merlin-reader
+
+ install -Dvm644 LICENSE \
+ -t "$pkgdir"/usr/share/licenses/$pkgname/
}
emacs() {
@@ -39,22 +57,54 @@ emacs() {
depends="$pkgname=$pkgver-r$pkgrel"
install_if="$pkgname=$pkgver-r$pkgrel emacs"
- _submv usr/share/emacs
+ amove usr/share/emacs
}
vim() {
pkgdesc="$pkgdesc in vim"
- depends="$pkgname=$pkgver-r$pkgrel"
+ depends="$pkgname=$pkgver-r$pkgrel python3"
install_if="$pkgname=$pkgver-r$pkgrel vim"
- _submv usr/share/ocamlmerlin/vim
+ amove usr/share/merlin/vim
}
-_submv() {
- local path="$1"
- mkdir -p "$subpkgdir"/${path%/*}
- mv "$pkgdir"/$path "$subpkgdir"/${path%/*}/
- rmdir -p "$pkgdir"/${path%/*} 2>/dev/null || true
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+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="bc9790d72caaec2824fe66c3ed439961a00285cd3f7e59cea8f16283a4f489a89d8ac231d2d0da1000e0f03fa6f7b52c04fa4aff6459df5bd17322693493088d merlin-3.0.5.tar.gz"
+sha512sums="
+ebefec44c7f54b10aa85895baacecf778930ee0c4cd5a257836755ccadd9018c20379511e254efa98ed7d48fff9ba9eeb93b45a722cc1d2d61f51570cc57985d merlin-4.14-414.tar.bz2
+"