# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Carlo Landmeter <clandmeter@alpinelinux.org>
pkgname=lua-sqlite
_rockname=lsqlite3
pkgver=0.9.6
_uuid="v0.9.6"
[ "$pkgver" != "0.9.6" ] && die "Please update uuid!"
_luaversions="5.1 5.2 5.3 5.4"
pkgrel=0
pkgdesc="Sqlite3 Binding for Lua"
url="http://lua.sqlite.org/index.cgi/home"
arch="all"
license="MIT"
makedepends="sqlite-dev"
# the uuid determines the archive version and the filename the target directory
source="$pkgname-$pkgver.zip::http://lua.sqlite.org/home/zip/${_rockname}_${pkgver//./}.zip?uuid=$_uuid"
builddir="$srcdir/lsqlite3_096"
options="!check" # missing lunitx

for _v in $_luaversions; do
	makedepends="$makedepends lua$_v-dev"
	subpackages="$subpackages lua$_v-${pkgname#lua-}:_package"
done

prepare() {
	default_prepare

	local lver
	for lver in $_luaversions; do
		cp -r "$builddir" "$builddir-$lver"
	done
}

build() {
	local lver
	for lver in $_luaversions; do
		cd "$builddir-$lver"
		msg "Building for Lua $lver..."
		# shellcheck disable=2046
		${CC:-gcc} $CFLAGS $(pkg-config --cflags sqlite3) \
			$(pkg-config --cflags lua$lver) -shared -fPIC \
			-DLSQLITE_VERSION=\"$pkgver\" -o lsqlite3.so lsqlite3.c \
			$(pkg-config --libs sqlite3)
	done
}

package() {
	mkdir -p "$pkgdir"
}

_package() {
	local lver="${subpkgname:3:3}"
	pkgdesc="$pkgdesc (for Lua $lver)"
	depends="lua$lver"
	install_if="$pkgname=$pkgver-r$pkgrel lua$lver"
	local rockdir="$subpkgdir/usr/lib/luarocks/rocks-$lver/$_rockname/$pkgver-1"

	cd "$builddir-$lver"
	install -Dm755 lsqlite3.so \
		"$subpkgdir"/usr/lib/lua/$lver/lsqlite3.so

	mkdir -p "$rockdir"
	echo 'rock_manifest = {}' > "$rockdir"/rock_manifest
}

sha512sums="
3b2d77c62976c57a27e8579b7fdac6e680bcfa5f709bfe0f4933401c22a137d345c6c298aa25503e2e9672102528a5ff89f61427ff9c6c50f39d49d33269f2ab  lua-sqlite-0.9.6.zip
"
