# Contributor: Mark Riedesel <mark@klowner.com>
# Contributor: Leon Marz <main@lmarz.org>
# Maintainer: Leon Marz <main@lmarz.org>
pkgname=blender
pkgver=4.4.3
_pkgver=${pkgver%.[0-9]}
pkgrel=0
pkgdesc="3D Creation/Animation/Publishing System"
url="https://www.blender.org/"
arch="x86_64 aarch64" # limited by openvdb
license="GPL-2.0-or-later"
depends="blender-shared=$pkgver-r$pkgrel"
makedepends="
	alembic-dev
	blosc-dev
	boost-dev
	clang-dev
	cmake
	eigen-dev
	embree-dev
	embree-static
	ffmpeg-dev
	fftw-dev
	freetype-dev
	gmp-dev
	jack-dev
	jemalloc-dev
	libdecor-dev
	libepoxy-dev
	libharu-dev
	libjpeg-turbo-dev
	libpng-dev
	libsndfile-dev
	libx11-dev
	libxi-dev
	libxkbcommon-dev
	libxrender-dev
	lzo-dev
	onetbb-dev
	openal-soft-dev
	opencolorio-dev
	openexr-dev
	openimagedenoise-dev
	openimageio-dev
	openjpeg-dev
	openpgl-dev
	opensubdiv-dev
	openvdb-dev
	openvdb-nanovdb
	openxr-dev
	osl
	osl-dev
	pipewire-dev
	potrace-dev
	pugixml-dev
	pulseaudio-dev
	py3-numpy-dev
	py3-zstandard
	python3-dev
	samurai
	sdl2-dev
	shaderc-dev
	tiff-dev
	vulkan-loader-dev
	wayland-dev
	wayland-protocols
	"
subpackages="$pkgname-doc $pkgname-shared::noarch $pkgname-headless py3-$pkgname:python"
source="https://download.blender.org/source/blender-$pkgver.tar.xz
	0001-musl-fixes.patch
	0002-fix-includes.patch
	"

# secfixes:
#   3.3.0-r0:
#     - CVE-2022-2831
#     - CVE-2022-2832
#     - CVE-2022-2833

build() {
	# Headless
	_build build-headless -C build_files/cmake/config/blender_headless.cmake

	# Full
	_build build-full -C build_files/cmake/config/blender_full.cmake

	# Python module
	_build build-py -C build_files/cmake/config/bpy_module.cmake
}

_build() {
	local py_version=$(python3 -c 'import sys; print("%i.%i" % (sys.version_info.major, sys.version_info.minor))')
	local outdir="$1"
	shift

	cmake -B "$outdir" -G Ninja -Wno-dev \
		"$@" \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DCMAKE_BUILD_TYPE=Release \
		-DWITH_PYTHON_INSTALL=OFF \
		-DWITH_INSTALL_PORTABLE=OFF \
		-DWITH_LIBS_PRECOMPILED=OFF \
		-DWITH_SYSTEM_EIGEN3=ON \
		-DWITH_SYSTEM_LZO=ON \
		-DWITH_LZMA=OFF \
		-DPYTHON_VERSION=$py_version \
		-DWITH_DRACO=OFF \
		-DWITH_CYCLES_OSL=OFF

	cmake --build "$outdir"
}

package() {
	# Install and rename the headless blender to blender-headless
	install -Dm755 build-headless/bin/blender "$pkgdir"/usr/bin/blender-headless

	# Install python module
	DESTDIR="$pkgdir" cmake --install build-py

	# Install the full package
	DESTDIR="$pkgdir" cmake --install build-full
}

shared() {
	pkgdesc="Blender shared runtime data and add-on scripts"
	depends=""
	amove usr/share/blender
}

headless() {
	pkgdesc="$pkgdesc (headless build)"
	depends="blender-shared=$pkgver-r$pkgrel"

	amove usr/bin/blender-headless
}

python() {
	pkgdesc="Blender modules for Python 3"
	depends="py3-numpy py3-zstandard"
	local py_version=$(python3 -c 'import sys; print("%i.%i" % (sys.version_info.major, sys.version_info.minor))')

	mkdir -p "$subpkgdir"/usr/lib/python"$py_version"/site-packages

	# temporary fix, while the build script has a bug
	mv "$pkgdir"/usr/lib/python"$py_version"/site-packages/bpy/__init__.so "$subpkgdir"/usr/lib/python"$py_version"/site-packages/bpy.so

	rm -rf "$pkgdir"/usr/lib

	# Symlink to the blender-shared files
	ln -s ../../../share/blender/"$_pkgver" "$subpkgdir"/usr/lib/python"$py_version"/site-packages/"$_pkgver"
}

sha512sums="
0a500a7abee2e2dea7cdc925539c3f906271525ec88877e12920315552a057072c68806d6cdf7a6eb43b2b7d611e8697c5ad093b22f2402f96a11718538012e6  blender-4.4.3.tar.xz
3d09f65e3505140c8f2bb1cb357613d7a23f4defc34bd4e53fbb0927fbd91a054001cc73d29bba512fd6621435ead7f2d66b9896b4c627d7a59d9075b00c3c92  0001-musl-fixes.patch
980f037d91d70a7f6f7fa62ca60d420e21fa7bde118e11964c3039d72b391c0e3ce6989a56a3ee290bd51c8744a2a4c0aba71956ac0ecd13fd15ed674024fce5  0002-fix-includes.patch
"
