# Contributor: Daniel Sabogal <dsabogalcc@gmail.com>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
setvar pkgname = 'lua-mpack'
setvar _rockname = 'mpack'
setvar _pkgname = 'libmpack-lua'
setvar pkgver = '1.0.6'
setvar pkgrel = '1'
setvar _libmpack_ver = '1.0.4'
setvar pkgdesc = ""Libmpack bindings for Lua""
setvar url = ""https://github.com/libmpack/libmpack-lua""
setvar arch = ""all""
setvar license = ""MIT""
setvar makedepends = ""libmpack-dev""
setvar checkdepends = ""lua-busted""
setvar subpackages = """"
setvar source = ""$_pkgname-$pkgver.tar.gz::https://github.com/libmpack/$_pkgname/archive/$pkgver.tar.gz
	libmpack-$_libmpack_ver.tar.gz::https://github.com/libmpack/libmpack/archive/$_libmpack_ver.tar.gz
	skip-memleak-test.patch
	dont-install-busted.patch
	dont-download-libmpack.patch""
setvar builddir = ""$srcdir/$_pkgname-$pkgver""

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 {
	cd $builddir

	local libver=$(sed -En "s/^MPACK_VERSION\s*\??=\s*([^ ]+).*/\1/p" Makefile)
	if test $libver != $_libmpack_ver {
		warning "libmpack-lua should be built with libmpack $libver, not $_libmpack_ver!"
	}

	ln -s "$srcdir"/libmpack-$_libmpack_ver mpack-src || return 1

	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 for Lua $lver..."
		make -C "$builddir-$lver" \
			CFLAGS="$CFLAGS -lmpack" \
			FETCH=false \
			USE_SYSTEM_LUA=yes \
			LUA_INCLUDE="$(pkg-config --cflags lua$lver)" \
			LUA_LIB="$(pkg-config --libs lua$lver)" || return 1
	}
}

proc check {
	local lver; for lver in $_luaversions {
		msg "Testing on Lua $lver..."
		make -C "$builddir-$lver" \
			USE_SYSTEM_LUA=yes \
			LUA=/usr/bin/lua$lver \
			BUSTED=/usr/bin/busted-$lver \
			test || return 1
	}
}

proc package {
	mkdir -p $pkgdir
}

proc _subpackage {
	local lver="${subpkgname:3:3}"
	setvar pkgdesc = ""$pkgdesc $lver""
	setvar install_if = ""$pkgname=$pkgver-r$pkgrel lua$lver""
	local rockdir="$subpkgdir/usr/lib/luarocks/rocks-$lver/$_rockname/$pkgver-0"

	make -C "$builddir-$lver" \
		USE_SYSTEM_LUA=yes \
		LUA_CMOD_INSTALLDIR="$(pkg-config --variable=INSTALL_CMOD lua$lver)" \
		DESTDIR="$subpkgdir" \
		install

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

setvar sha512sums = ""3a2f0697f94957c15a78ff24b296a034f301d1e8ab51d5636389f0fad7be838d450c59038c61d4173fa9e0463aa5565cfc0c35c273b4961a5e5631d343ca0605  libmpack-lua-1.0.6.tar.gz
8e40a562faf8b62137dec0733cbb9006fa7054e5a47bdd128fb4dfd676fac4e4385a23c3d908a4ce2edd65d673db25916695fa74bc08c5316b0c80e571a7442c  libmpack-1.0.4.tar.gz
af6b670c1007aa86b696798ede30d17addc45d27dd7e78be6e7bd4a3eac931a9ce47b8e12d8146dadf44c80d21917983a836915dd8f0c33abf3be0381a24a642  skip-memleak-test.patch
f688f34c6893dbb4590b93e14de459c33d8efe621a41699a36286b117b874fac37fe473ef46ad2f2855c4672d90defb600c7e93555989d0c45a4964fda49c5a9  dont-install-busted.patch
6c151d65f2f5c2e5e5b5f851035a7be478544cf4152e40d81d2abdca724a6e41b3767e37e9ed59f1aa8d269477ae768716f7c6e4dfc93bc3cf577e83c6c0da56  dont-download-libmpack.patch""