SUMMARY="High level abstract threading library"
DESCRIPTION="Threading Building Blocks (TBB) is a C++ template library \
developed by Intel for parallel programming on multi-core processors. Using \
TBB, a computation is broken down into tasks that can run in parallel. The \
library manages and schedules threads to execute these tasks."
HOMEPAGE="https://www.threadingbuildingblocks.org/"
COPYRIGHT="2005-2018 Intel Corporation"
LICENSE="Apache v2"
REVISION="3"
SOURCE_URI="https://github.com/01org/tbb/archive/${portVersion/./_U}.tar.gz"
CHECKSUM_SHA256="c4c2896af527392496c5e01ef8579058a71b6eebbd695924cd138841c13f07be"
SOURCE_DIR="tbb-${portVersion/./_U}"
PATCHES="tbb-$portVersion.patchset"

ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"

PROVIDES="
	tbb$secondaryArchSuffix = $portVersion
	lib:libtbb$secondaryArchSuffix = $portVersion
	lib:libtbbmalloc$secondaryArchSuffix = $portVersion
	lib:libtbbmalloc_proxy$secondaryArchSuffix = $portVersion
	"
REQUIRES="
	haiku$secondaryArchSuffix
	"

PROVIDES_devel="
	tbb${secondaryArchSuffix}_devel = $portVersion
	devel:libtbb$secondaryArchSuffix = $portVersion
	devel:libtbbmalloc$secondaryArchSuffix = $portVersion
	devel:libtbbmalloc_proxy$secondaryArchSuffix = $portVersion
	"
REQUIRES_devel="
	tbb$secondaryArchSuffix == $portVersion base
	"

BUILD_REQUIRES="
	haiku${secondaryArchSuffix}_devel
	"
BUILD_PREREQUIRES="
	cmd:find
	cmd:gcc$secondaryArchSuffix
	cmd:grep
	cmd:make
	cmd:sed
	"

defineDebugInfoPackage tbb$secondaryArchSuffix \
	$libDir/libtbb.so.2 \
	$libDir/libtbbmalloc.so.2 \
	$libDir/libtbbmalloc_proxy.so.2

BUILD()
{
	make $jobArgs
}

INSTALL()
{
	mkdir -p $libDir $includeDir

	cd build
	LIB_LOCATION=`find . -maxdepth 1 -type d |grep release`
	cd $LIB_LOCATION

	cp libtbb.so.2 libtbbmalloc.so.2 libtbbmalloc_proxy.so.2 $libDir
	ln -s $libDir/libtbb.so.2 $libDir/libtbb.so
	ln -s $libDir/libtbbmalloc.so.2 $libDir/libtbbmalloc.so
	ln -s $libDir/libtbbmalloc_proxy.so.2 $libDir/libtbbmalloc_proxy.so

	cd ../..

	cp -R include/serial include/tbb $includeDir

	prepareInstalledDevelLibs libtbb libtbbmalloc libtbbmalloc_proxy

	# devel package
	packageEntries devel $developDir
}

TEST()
{
	make $jobArgs test
}
