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

EAPI=8

PYTHON_COMPAT=( python3_{12..15} )

inherit cmake python-any-r1

DESCRIPTION="The WebAssembly Binary Toolkit"
HOMEPAGE="https://github.com/WebAssembly/wabt"
SRC_URI="https://github.com/WebAssembly/wabt/releases/download/${PV}/${P}.tar.xz"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="amd64"
IUSE="test"

RESTRICT="!test? ( test )"

DEPEND="test? ( dev-cpp/gtest )"
BDEPEND="
	${PYTHON_DEPS}
	$(python_gen_any_dep 'dev-python/ply[${PYTHON_USEDEP}]')
"

PATCHES=(
	# Disable tests depending on third_party/wasm-c-api/example/*.wasm
	"${FILESDIR}/wabt-1.0.41-wasm-blob-tests.patch"
)

python_check_deps() {
	python_has_version "dev-python/ply[${PYTHON_USEDEP}]"
}

src_prepare() {
	# Submodules kept: third_party/picosha2 third_party/simde
	#                  third_party/testsuite third_party/wasm-c-api
	# Dropped before cmake_src_prepare() so that its cmake_minimum_required
	# QA scan does not trip over CMakeLists.txt files we never build.
	rm -r third_party/gtest third_party/ply third_party/uvwasi \
		third_party/simde/test || die

	rm third_party/wasm-c-api/example/*.wasm fuzz-in/wasm/stuff.wasm || die

	cmake_src_prepare
}

src_configure() {
	local mycmakeargs=(
		-DUSE_SYSTEM_GTEST=ON
		-DBUILD_LIBWASM=ON
		-DWITH_WASI=OFF # Need to unbundle third_party/uvwasi
		-DBUILD_TESTS=$(usex test)
	)

	cmake_src_configure
}

src_test() {
	cmake_build check
}