# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
setvar _luaversions = ""5.1 5.2 5.3""
setvar pkgname = 'lua-rex'
setvar pkgver = '2.8.0'
setvar pkgrel = '0'
setvar pkgdesc = ""Lua bindings to regular expression library pcre and posix""
setvar url = ""http://lrexlib.luaforge.net/""
setvar arch = ""all""
setvar license = ""MIT""
setvar depends = ""lua-rex-pcre lua-rex-posix""
setvar makedepends = ""pcre-dev""
setvar install = ''
setvar subpackages = ""$pkgname-pcre:_pcre $pkgname-posix:_posix""

for _i in $_luaversions {
	setvar makedepends = ""$makedepends lua$_i-dev lua$_i""
	setvar subpackages = ""$subpackages lua$_i-rex-pcre:_pcre_${_i/./_}
		lua$_i-rex-posix:_posix_${_i/./_}""

	eval "_pcre_${_i/./_}() { _split $_i pcre; }"
	eval "_posix_${_i/./_}() { _split $_i posix; }"
}

setvar source = ""$pkgname-$pkgver.tar.gz::https://github.com/rrthomas/lrexlib/archive/rel-${pkgver//./-}.tar.gz""

setvar _builddir = ""$srcdir"/lrexlib-rel-${pkgver//./-}"

proc prepare {
	local _ver
	for _ver in $_luaversions {
		cp -r $_builddir "$srcdir"/build-$_ver
	}
}

proc _build_variant {
	local _ver=$1
	local _obj=$2
	local _flags="$3"

	${CC:-gcc} \
		${CFLAGS} \
		$(pkg-config --cflags lua$_ver) \
		-shared \
		-fPIC \
		-o $_obj.${pkgver%.*} \
		$_flags \
		-DVERSION='"'$pkgver'"' \
		-DLUA_COMPAT_5_2 || return 1
	ln -s $_obj.${pkgver%.*} $_obj || return 1
}

proc build {
	local _ver
	for _ver in $_luaversions {
		msg "build for Lua $_ver"
		cd "$srcdir"/build-$_ver
		_build_variant $_ver rex_pcre.so \
			'src/common.c src/pcre/lpcre.c src/pcre/lpcre_f.c
			-lpcre' || return 1
		_build_variant $_ver rex_posix.so \
			'src/common.c src/posix/lposix.c' || return 1
	}
}

proc package {
	mkdir -p $pkgdir
}

proc _pcre {
	setvar pkgdesc = ""Lua bindings to pcre regular expressions library""
	setvar depends = ''
	mkdir -p $subpkgdir
}

proc _posix {
	setvar pkgdesc = ""Lua bindings to posix regular expressions library""
	setvar depends = ''
	mkdir -p $subpkgdir
}

proc _split {
	local _ver=$1
	local _lib=$2
	setvar pkgdesc = ""Lua $_ver bindings to $_lib regular expressions library""
	setvar install_if = ""lua$_ver lua-rex-$_lib=$pkgver-r$pkgrel""
	setvar depends = ''
	install -d "$subpkgdir"/usr/lib/lua/$_ver || return 1
	cp -a "$srcdir"/build-$_ver/rex_$_lib.so* \
		"$subpkgdir"/usr/lib/lua/$_ver || return 1
}

setvar md5sums = ""25b88d455e3d389ab431568290060af5  lua-rex-2.8.0.tar.gz""
setvar sha256sums = ""d47f2de3340b30c75a849feaf02f79de5a8adf735edf631bbd58447db2101822  lua-rex-2.8.0.tar.gz""
setvar sha512sums = ""9593263541757f384df327c85a01df648767041c494f9f7b3491a521e7d4f94918b967c48adff6794bc93baf3b4a11add6feb4630de8bf53903ff7a819c1b006  lua-rex-2.8.0.tar.gz""