mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2026-01-06 09:11:38 +01:00
151 lines
3.4 KiB
Plaintext
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"
|