projects/aports·blob master · refs

121 lines · 3.1 KiB

1# Contributor: Leo <[email protected]>
2# Contributor: Jakub Jirutka <[email protected]>
3# Maintainer: John Vogel <[email protected]>
4maintainer="John Vogel <[email protected]>"
5pkgname=lua-luv
6_rockname=luv
7pkgver=1.52.1.0
8_pkgver=${pkgver%.*}-${pkgver##*.}
9pkgrel=0
10pkgdesc="Bare libuv bindings for Lua"
11url="https://github.com/luvit/luv"
12arch="all"
13license="Apache-2.0"
14makedepends="
15 cmake
16 libuv-dev
17 lua-compat53-dev
18 ninja
19 "
20subpackages="
21 $pkgname-static
22 $pkgname-dev
23 libluv
24 "
25source="https://github.com/luvit/luv/archive/$_pkgver/lua-luv-$_pkgver.tar.gz
26 skip-tty-test.patch
27 "
28builddir="$srcdir/luv-$_pkgver"
29
30case "$CARCH" in
31riscv64)
32 _luajit=""
33 ;;
34*)
35 _luajit="jit"
36 makedepends="$makedepends luajit-dev"
37 ;;
38esac
39
40_luaversions="5.1 5.2 5.3 5.4 5.5"
41for _v in $_luaversions; do
42 makedepends="$makedepends lua$_v-dev"
43 subpackages="$subpackages lua$_v-${pkgname#lua-}:_subpackage"
44done
45
46build() {
47 # shared module loop
48 local lver; for lver in $_luaversions $_luajit; do
49 cmake -B "build-$lver" -G Ninja \
50 -DCMAKE_INSTALL_PREFIX=/usr \
51 -DWITH_LUA_ENGINE=Lua \
52 -DWITH_SHARED_LIBUV=ON \
53 -DLUA_BUILD_TYPE=System \
54 -DLUA_INCLUDE_DIR="$(pkg-config --variable=includedir "lua$lver")" \
55 -DLUA_COMPAT53_DIR="/usr/include/lua${lver/jit/5.1}" \
56 -DBUILD_MODULE=ON \
57 -DBUILD_SHARED_LIBS=ON \
58 -DBUILD_STATIC_LIBS=OFF
59 cmake --build "build-$lver"
60 done
61 # separate static because cmake tracks all installed and makes it impossible to split
62 cmake -B build-static -G Ninja \
63 -DCMAKE_INSTALL_PREFIX=/usr \
64 -DWITH_LUA_ENGINE=Lua \
65 -DWITH_SHARED_LIBUV=ON \
66 -DLUA_BUILD_TYPE=System \
67 -DLUA_INCLUDE_DIR="$(pkg-config --variable=includedir "lua5.1")" \
68 -DLUA_COMPAT53_DIR="/usr/include/lua5.1" \
69 -DBUILD_MODULE=ON \
70 -DBUILD_SHARED_LIBS=OFF \
71 -DBUILD_STATIC_LIBS=ON
72 cmake --build build-static
73}
74
75check() {
76 local lver; for lver in $_luaversions $_luajit; do
77 msg "Running tests with lua$lver"
78 LUA_CPATH="build-${lver/jit/5.1}/lib?.so;;" lua$lver tests/run.lua
79 done
80}
81
82package() {
83 DESTDIR="$pkgdir" cmake --install build-static
84 DESTDIR="$pkgdir" cmake --install build-${_luajit:-"5.1"}
85
86 rm -rf "$pkgdir"/usr/lib/lua
87}
88
89dev() {
90 default_dev
91
92 local lver; for lver in $_luaversions; do
93 mkdir -p "$subpkgdir/usr/include/lua$lver"
94 ln -s ../luv "$subpkgdir"/usr/include/lua$lver/
95 done
96}
97
98# This is needed for neovim.
99libluv() {
100 pkgdesc="$pkgdesc (shared library)"
101
102 amove usr
103}
104
105_subpackage() {
106 local lver="${subpkgname:3:3}"
107 pkgdesc="$pkgdesc $lver"
108 depends="lua$lver"
109 install_if="$pkgname=$pkgver-r$pkgrel lua$lver"
110 local rockdir="$subpkgdir/usr/lib/luarocks/rocks-$lver/$_rockname/$_pkgver"
111
112 install -D -m755 "$builddir"/build-$lver/luv.so -t "$subpkgdir"/usr/lib/lua/$lver/
113
114 mkdir -p "$rockdir"
115 echo 'rock_manifest = {}' > "$rockdir"/rock_manifest
116}
117
118sha512sums="
119973e79f01c3cccb9dc58e770457e8ed7205bde15cb1e70a5d32832fad1604833e4598e0293ee6c176e9ff7c30c14eacf73388a7df0903c0da8e1f28721a09605 lua-luv-1.52.1-0.tar.gz
1203f64c2c3aa6a688042081f3ff31c569fc184b02aec03fb848a6bb890b8c572707ad8c79c520a6e520f4b390192abfd689e1bdbf61bc61412784a5f749acaf92f skip-tty-test.patch
121"