# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=uhttpd
_gitrev=c7294e7037a9e6f8fb4b9084d31cb8e98bd7b5f9
pkgver=0_git20250406
pkgrel=1
pkgdesc="Tiny HTTP server from OpenWrt"
url="https://openwrt.org/docs/guide-user/services/webserver/uhttpd"
arch="all"
license="ISC"
makedepends="
	cmake
	json-c-dev
	libblobmsg
	libubox-dev
	lua5.1-dev
	samurai
	ucode-dev
	ustream-ssl-dev
	"
subpackages="
	$pkgname-openrc
	$pkgname-mod-lua:_lua
	$pkgname-mod-ucode:_ucode
	$pkgname-mod-tls:_tls
	"
install="$pkgname.pre-install"
source="https://github.com/openwrt/uhttpd/archive/$_gitrev/uhttpd-$_gitrev.tar.gz
	$pkgname.initd
	$pkgname.confd
	"
builddir="$srcdir/$pkgname-$_gitrev"
options="!check"  # no tests provided

build() {
	local crossopts=
	[ "$CBUILD" != "$CHOST" ] && \
		crossopts="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"

	cmake -B build -G Ninja \
		-DCMAKE_BUILD_TYPE=None \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DTLS_SUPPORT=ON \
		-DLUA_SUPPORT=ON \
		-DUBUS_SUPPORT=OFF \
		-DUCODE_SUPPORT=ON \
		$crossopts
	cmake --build build
}

package() {
	DESTDIR="$pkgdir" cmake --install build

	install -D -m755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
	install -D -m644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
}

_lua() {
	pkgdesc="$pkgdesc - Lua 5.1 support"

	amove usr/lib/uhttpd_lua.so
}

_tls() {
	pkgdesc="$pkgdesc - TLS support"
	depends="$pkgname=$pkgver-r$pkgrel ustream-ssl"

	mkdir -p "$subpkgdir"
}

_ucode() {
	pkgdesc="$pkgdesc - ucode support"

	amove usr/lib/uhttpd_ucode.so
}

sha512sums="
079450e2db8a9633c65eca65c9538ed584bd8094dae2d783d21bd7761a75cf20ba7dc55c2b37b1d3cc346e9b32d71e74e3851b5077801968c7674603bb86007c  uhttpd-c7294e7037a9e6f8fb4b9084d31cb8e98bd7b5f9.tar.gz
fff5188036034c6d62c6864d8169254215c858635477e46e53296522e6359ea9b68d95e0c545915f10bb20e277a0c28a2b9f8c6687c9fd52392b2d74bf5ba58e  uhttpd.initd
489afb1517aa4b7985e199792c00f24b903529011e36fee8ea7f931df0851c4955855f1e2caab6c8fcedd035b53cadb2b1a9423d1ec43f48556f536eb236a68b  uhttpd.confd
"
