# Copyright 2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit cmake

DESCRIPTION="C/C++ WebRTC network library"
HOMEPAGE="https://github.com/paullouisageneau/libdatachannel"
SRC_URI="https://github.com/paullouisageneau/libdatachannel/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"

LICENSE="MPL-2.0"
SLOT="0"
KEYWORDS="~amd64"

DEPEND="
	net-libs/usrsctp:=
	dev-libs/plog:=
	net-libs/libsrtp:2=
	dev-cpp/nlohmann_json:=

	!libnice? ( net-libs/libjuice:= )
	libnice?  ( net-libs/libnice:= )

	!gnutls? (
		!mbedtls? (
			dev-libs/openssl:=
		)
	)
	gnutls? (
		net-libs/gnutls:=
	)
	mbedtls? (
		net-libs/mbedtls:=
	)
"
RDEPEND="${DEPEND}"
#BDEPEND=""

IUSE="gnutls mbedtls libnice +media +websocket"

# tests seemingly require network
RESTRICT="test"
REQUIRE_USE="
	?? ( gnutls mbedtls )
"

src_configure() {
	local mycmakeargs=(
		-DPREFER_SYSTEM_LIB=1
		# makes no difference to installed files when enabled
		-DNO_EXAMPLES=yes
		# tests seemingly require network
		-DNO_TESTS=yes

		# libraries choice
		# openssl is implied default unless these ar set
		-DUSE_GNUTLS=$(usex gnutls)
		-DUSE_MBEDTLS=$(usex mbedtls)

		-DUSE_NICE=$(usex libnice)

		# feature support
		-DNO_MEDIA=$(usex !media)
		-DNO_WEBSOCKET=$(usex !websocket)
	)
	cmake_src_configure
}