aports/testing/reason/APKBUILD

151 lines
3.4 KiB
Plaintext

# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=reason
pkgver=3.0.4
pkgrel=2
pkgdesc="Simple, fast & type safe code that leverages the JavaScript & OCaml ecosystems"
url="https://reasonml.github.io/"
# x86, armhf, s390x: limited by ocaml aport
arch="all !x86 !armhf !armv7 !s390x"
license="MIT"
checkdepends="nodejs utop-full"
_menhirver=20171013
makedepends="
bash
dune
ocaml
ocaml-compiler-libs
ocaml-findlib-dev
ocaml-menhir-dev=~$_menhirver
ocaml-merlin-extend-dev
ocaml-migrate-parsetree-dev
ocaml-ocamlbuild-dev
ocaml-result-dev
ocaml-utop-dev
ocamlbuild
opam
"
options="!check" # FIXME: tests cannot find reason's modules
subpackages="
ocaml-$pkgname-dev:_libdev
$pkgname-merlin
$pkgname-reactjs
$pkgname-rebuild
$pkgname-rtop
ocaml-$pkgname:_lib
"
source="$pkgname-$pkgver.tar.gz::https://github.com/facebook/$pkgname/archive/$pkgver.tar.gz
rtop.sh.patch"
builddir="$srcdir/$pkgname-$pkgver"
build() {
cd "$builddir"
jbuilder build @install
}
check() {
cd "$builddir"
jbuilder runtest
}
package() {
cd "$builddir"
opam-installer -i \
--prefix="$pkgdir/usr" \
--libdir="$pkgdir/usr/lib/ocaml" \
--docdir="$pkgdir/doc" \
--mandir="$pkgdir/usr/share/man" \
$pkgname.install
cd "$pkgdir"
# There's just a readme and changelog.
rm -Rf doc
# Remove annotation files and sources.
find usr/lib/ocaml \
-name '*.cmt' -delete \
-o -name '*.cmti' -delete \
-o -name '*.ml' -delete
# Just for internal tests.
rm usr/bin/testOprint
# This is probably used only to generate parser (?).
rm usr/bin/menhir_error_processor
mkdir -p usr/share/$pkgname-rtop
mv usr/bin/rtop_init.ml usr/share/$pkgname-rtop/
}
_libdev() {
pkgdesc="$pkgdesc (development files)"
depends="ocaml-$pkgname=$pkgver-r$pkgrel"
local sitelib="usr/lib/ocaml/$pkgname"
cd "$pkgdir"
local path; for path in $(find $sitelib/ \
-name '*.a' \
-o -name '*.cmx' \
-o -name '*.cmxa' \
-o -name '*.mli')
do
mkdir -p "$subpkgdir"/${path%/*}
mv "$path" "$subpkgdir"/${path%/*}/
done
rmdir "$subpkgdir"/$sitelib 2>/dev/null || true
}
merlin() {
pkgdesc="Reason extension to Merlin - context sensitive completion"
depends="ocaml-merlin"
_submv usr/bin/ocamlmerlin-reason
}
reactjs() {
pkgdesc="ReactJS interop that translates Reason JSX to JS"
_submv usr/bin/ppx_react
_submv usr/bin/reactjs_jsx_ppx_v2
_submv usr/bin/reactjs_jsx_ppx_v3
}
rebuild() {
pkgdesc="Simple build system for Reason based on OCamlbuild"
depends="$pkgname ocaml ocaml-ocamlbuild"
_submv usr/bin/rebuild
}
rtop() {
pkgdesc="REPL for Reason based on Utop"
depends="$pkgname=$pkgver-r$pkgrel
ocaml-$pkgname=$pkgver-r$pkgrel
ocaml-menhir-dev=~$_menhirver
utop-full"
_submv usr/bin/rtop
_submv usr/lib/ocaml/$pkgname/rtop
_submv usr/share/$pkgname-rtop
}
_lib() {
pkgdesc="$pkgdesc (library)"
depends="ocaml-runtime ocaml-menhir=~$_menhirver ocaml-migrate-parsetree"
_submv usr/lib/ocaml/$pkgname
}
_submv() {
local path="$1"
mkdir -p "$subpkgdir"/${path%/*}
mv "$pkgdir"/$path "$subpkgdir"/${path%/*}/
rmdir -p "$pkgdir"/${path%/*} 2>/dev/null || true
}
sha512sums="ba21920b7320841b08cf0684aeb6718be92b175e2ab71d3b96b317f047c9726b656088cf1a4770766335d4f8a54194b84173e2d7458eabb9e2c0b89a78b1eb95 reason-3.0.4.tar.gz
5a658798a27fa69cc2685353cf0c26dfd95ea6a1d8d5c53c6476500b37b86c18b7b1d26fecac13c5ab0aa91e07f4aa5a7087934e9faca0002dad8f6b8fafd876 rtop.sh.patch"