# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
setvar pkgname = 'lua-system'
setvar _pkgname = 'luasystem'
setvar pkgver = '0.2.1'
setvar pkgrel = '1'
setvar pkgdesc = ""Platform independent system calls for Lua""
setvar url = ""https://github.com/o-lim/luasystem/""
setvar arch = ""all""
setvar license = ""MIT""
setvar makedepends = """"
setvar subpackages = """"
setvar source = ""$pkgname-$pkgver.tar.gz::https://github.com/o-lim/$_pkgname/archive/v$pkgver.tar.gz""
setvar builddir = ""$srcdir/$_pkgname-$pkgver""
# This module needs lua-busted to run tests, but lua-busted depends on
# lua-system and we wanna avoid circular dependencies.
setvar options = ""!check""

setvar _luaversions = ""5.1 5.2 5.3""
for _v in $_luaversions {
	setvar makedepends = ""$makedepends lua$_v-dev""
	setvar subpackages = ""$subpackages lua$_v-${pkgname#lua-}:_subpackage""
}

proc prepare {
	default_prepare || return 1

	local lver; for lver in $_luaversions {
		cp -r $builddir "$builddir-$lver" || return 1
	}
}

proc build {
	local lver; for lver in $_luaversions {
		msg "Building against Lua $lver..."
		make -C "$builddir-$lver"/src \
			LUA_VERSION=$lver \
			MYCFLAGS="$CFLAGS" || return 1
	}
}

proc package {
	mkdir -p $pkgdir
}

proc _subpackage {
	local lver="${subpkgname:3:3}"
	setvar pkgdesc = ""$pkgdesc $lver""
	setvar depends = ""lua$lver""
	setvar install_if = ""$pkgname=$pkgver-r$pkgrel lua$lver""
	local lmod_dir=$(pkg-config --variable=INSTALL_LMOD lua$lver)
	local rockdir="$subpkgdir/usr/lib/luarocks/rocks-$lver/$_pkgname/$pkgver-0"

	cd "$builddir-$lver"

	make -C src LUA_VERSION=$lver DESTDIR="$subpkgdir" prefix=/usr \
		install || return 1
	install -m 644 -D system/init.lua "$subpkgdir"/$lmod_dir/system.lua

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

setvar sha512sums = ""b8a04a83e8e39c98da23484c9eba9ff60da2fb4db3deca0d52784a6c13c7e0faf7a8b326999d88703847107e4fce739062fc04a00266140969c9f57b70064f46  lua-system-0.2.1.tar.gz""