# Template file for 'tbb'
pkgname=tbb
version=2022.0.0
revision=2
build_style=cmake
configure_args="-DTBB_STRICT=OFF -DTBB_TEST=OFF"
makedepends="libgomp-devel libhwloc-devel"
short_desc="Intel Threading Building Blocks"
maintainer="Andrea Brancaleoni <abc@pompel.me>"
license="Apache-2.0"
homepage="https://oneapi-src.github.io/oneTBB/"
changelog="https://raw.githubusercontent.com/oneapi-src/oneTBB/v${version}/RELEASE_NOTES.md"
distfiles="https://github.com/oneapi-src/oneTBB/archive/refs/tags/v${version}.tar.gz"
checksum=e8e89c9c345415b17b30a2db3095ba9d47647611662073f7fbf54ad48b7f3c2a
make_check=no  # checks fail upstream on i686

case "$XBPS_TARGET_MACHINE" in
	x86_64*|aarch64*)
		hostmakedepends+=" python3-setuptools python3-devel python3-distutils-extra swig"
		makedepends+=" python3-devel"
		configure_args+=" -DTBB4PY_BUILD=ON"
	;;
esac

if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
	makedepends+=" libucontext-devel"
	configure_args+=" -DCMAKE_CXX_STANDARD_LIBRARIES=-lucontext"
fi

post_install() {
	# The Python package is installed as an egg, which is deprecated
	# and isn't added to the Python path, so just unpack it.
	local f sitelib
	sitelib="${DESTDIR}/${py3_sitelib}"

	for f in "${sitelib}"/TBB*-"py${py3_ver}"*.egg/EGG-INFO; do
		[ -d "${f}" ] || continue
		mv "${f}" "${f%-"py${py3_ver}"*.egg/EGG-INFO}-py${py3_ver}.egg-info"
	done

	for f in "${sitelib}"/TBB*.egg/*; do
		[ -e "${f}" ] || continue
		mv "${f}" "${DESTDIR}/${py3_sitelib}"
	done

	# Clean up the egg directory to confirm it was successfully unpacked
	for f in "${sitelib}"/*.egg; do
		[ -e "${f}" ] || continue
		rmdir "${f}"
	done

	# Make sure the post-install hook finds this shlib for renaming
	for f in "${sitelib}"/tbb/_api*.so; do
		[ -e "${f}" ] || continue
		chmod 0755 "${f}"
	done
}

tbb-devel_package() {
	depends="${sourcepkg}>=${version}_${revision}"
	short_desc+=" - development files"
	pkg_install() {
		vmove usr/include
		vmove "usr/lib/*.so"
		vmove usr/lib/cmake
		vmove usr/lib/pkgconfig
	}
}
