blob: 56575bf3a2a0c888ca1b1fdfc6ea3a5850bfb083 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
|
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=reason
pkgver=3.0.4
pkgrel=1
pkgdesc="Simple, fast & type safe code that leverages the JavaScript & OCaml ecosystems"
url="http://reasonml.github.io/"
# x86, armhf, s390x: limited by ocaml aport
arch="all !x86 !armhf !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"
|