public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: media-gfx/blender/
Date: Wed, 22 Nov 2023 11:38:07 +0000 (UTC)	[thread overview]
Message-ID: <1700652864.8affb5749fc86c363f0a47b4931e14769918a509.sam@gentoo> (raw)

commit:     8affb5749fc86c363f0a47b4931e14769918a509
Author:     Paul Zander <negril.nx+gentoo <AT> gmail <DOT> com>
AuthorDate: Fri Nov 17 16:46:45 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Nov 22 11:34:24 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8affb574

media-gfx/blender: add 4.0.1, update 9999

dds support is now provided via openimageio, dropped the useflag.
Adjusted the cmake options to use yes/no, so the options we don't set
explicitly show up as ON/OFF.
Added new cmake options.

Dropped explicit setting of DEBUG options as advised by @DarkDefender in
https://github.com/gentoo/gentoo/pull/33875#issuecomment-1816840959.
They can be passed via MYCMAKEARGS if needed.

Changed the test location to T as ED is not allowed outside
src_install().
Introduced code so cycles tests use all configured devices. They will
still fail because CUDA devices can't be found in sandbox.

Added code that sets a supported CUDA_HOST_COMPILER via cuda.eclass when
using gcc.

Added HIP support to 9999 for testing.

Masked test for 4.0.1 because we don't pull the test source from svn
anymore.

Bug: https://bugs.gentoo.org/895414
Closes: https://bugs.gentoo.org/917482
Signed-off-by: Paul Zander <negril.nx+gentoo <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/33875
Signed-off-by: Sam James <sam <AT> gentoo.org>

 media-gfx/blender/Manifest                         |   1 +
 .../{blender-9999.ebuild => blender-4.0.1.ebuild}  | 146 +++++++++++++-------
 media-gfx/blender/blender-9999.ebuild              | 147 ++++++++++++++-------
 media-gfx/blender/metadata.xml                     |   3 +
 4 files changed, 196 insertions(+), 101 deletions(-)

diff --git a/media-gfx/blender/Manifest b/media-gfx/blender/Manifest
index 7c56592c6b76..0d2630aac5f1 100644
--- a/media-gfx/blender/Manifest
+++ b/media-gfx/blender/Manifest
@@ -4,3 +4,4 @@ DIST blender-3.4.1.tar.xz 53666296 BLAKE2B ec5b2771c1b55ecdf3c2c86a413ae55995458
 DIST blender-3.5.1.tar.xz 69780800 BLAKE2B 6961280b9d5fb606a35137ce355bf07b4dc16908d5d52cfd3a914907721da16108b8780b1894413a69ab69d455f5d1575697079a24c2bdcecb17174cf7a7c7c7 SHA512 7c9c03de8532884f8ab39fecf1450f8be4bc937a018bd14240ace81a89e422625aba9c4865f6efbb8371f5f01e930932fa5cf03c9d14d44c5312db33e3c56131
 DIST blender-3.6.0.tar.xz 70428872 BLAKE2B a43f2c0a2db6fa624b1bd96264462312d31f2e3983c463da9d17b0c793d0d344dfbbc13acfb8bab53cc37f5b5b3479d60b8046475aa6c977074ef35414640eaf SHA512 5fbb7a48d1f18e5cc6430bdefb4d7d9e8a52d387cf92a319c7fbc8836a3f5a6f90fab13f152be49c3558a8f70ed9f0d1f7aeddb264a938496a2f93254bb569cb
 DIST blender-3.6.5.tar.xz 70447868 BLAKE2B efa366b8aff5c8870c9ed060063eba1115a9ae50b0345c56fbaaab228976afad6f4c6b9c374f22d146fe88db6e0e7aab3d61b1797e71f30f6adfc594599ea2be SHA512 d07e53c708a1e6df18853eb5f0dc032459c74ef43f9559880720170f98ac8729064edb143835f8cec411ab6de42619bed3f0ef1143b288f2a2eb6f05fdfc32ae
+DIST blender-4.0.1.tar.xz 73278416 BLAKE2B 06c3397e8c28f544ec5d207db195e33824e9ddeb1b468342e4e7c18773b00b6b42282e8318a7ae96c7a7c81c7e0626e666953d00bf78bf64922047bd563d625a SHA512 288e5a04f274ab351c8517e6de2195f414e618a82fb2a3b2aede5f9120aa6a41f20bc2c4e5190c47b69da841bb1ebe15e9ffee737c1cc2b5979a28b0e1f4c5ae

diff --git a/media-gfx/blender/blender-9999.ebuild b/media-gfx/blender/blender-4.0.1.ebuild
similarity index 76%
copy from media-gfx/blender/blender-9999.ebuild
copy to media-gfx/blender/blender-4.0.1.ebuild
index d4e734739dd6..1b116ab3679a 100644
--- a/media-gfx/blender/blender-9999.ebuild
+++ b/media-gfx/blender/blender-4.0.1.ebuild
@@ -3,9 +3,9 @@
 
 EAPI=8
 
-PYTHON_COMPAT=( python3_10 python3_11 )
+PYTHON_COMPAT=( python3_{10..11} )
 
-inherit check-reqs cmake flag-o-matic pax-utils python-single-r1 toolchain-funcs xdg-utils
+inherit check-reqs cmake cuda flag-o-matic pax-utils python-single-r1 toolchain-funcs xdg-utils
 
 DESCRIPTION="3D Creation/Animation/Publishing System"
 HOMEPAGE="https://www.blender.org"
@@ -19,25 +19,26 @@ else
 	SRC_URI="https://download.blender.org/source/${P}.tar.xz"
 	# Update these between major releases.
 	TEST_TARBALL_VERSION="$(ver_cut 1-2).0"
-	SRC_URI+=" test? ( https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-${TEST_TARBALL_VERSION}-tests.tar.xz )"
+	# SRC_URI+=" test? ( https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-${TEST_TARBALL_VERSION}-tests.tar.xz )"
 	KEYWORDS="~amd64 ~arm ~arm64"
 fi
 
 SLOT="${PV%.*}"
 LICENSE="|| ( GPL-3 BL )"
-IUSE="+bullet +dds +fluid +openexr +tbb
+IUSE="+bullet +fluid +openexr +tbb
 	alembic collada +color-management cuda +cycles cycles-bin-kernels
 	debug doc +embree +ffmpeg +fftw +gmp jack jemalloc jpeg2k
 	man +nanovdb ndof nls openal +oidn +openmp +openpgl +opensubdiv
 	+openvdb optix osl +pdf +potrace +pugixml pulseaudio sdl
-	+sndfile test +tiff valgrind wayland X"
-RESTRICT="!test? ( test )"
+	+sndfile test +tiff valgrind wayland +webp X"
+RESTRICT="test"
 
 REQUIRED_USE="${PYTHON_REQUIRED_USE}
 	alembic? ( openexr )
 	cuda? ( cycles )
 	cycles? ( openexr tiff )
 	fluid? ( tbb )
+	nanovdb? ( openvdb )
 	openvdb? ( tbb )
 	optix? ( cuda )
 	osl? ( cycles )
@@ -46,6 +47,7 @@ REQUIRED_USE="${PYTHON_REQUIRED_USE}
 # Library versions for official builds can be found in the blender source directory in:
 # build_files/build_environment/install_deps.sh
 RDEPEND="${PYTHON_DEPS}
+	app-arch/zstd
 	dev-libs/boost:=[nls?]
 	dev-libs/lzo:2=
 	$(python_gen_cond_dep '
@@ -68,7 +70,7 @@ RDEPEND="${PYTHON_DEPS}
 	collada? ( >=media-libs/opencollada-1.6.68 )
 	color-management? ( media-libs/opencolorio:= )
 	cuda? ( dev-util/nvidia-cuda-toolkit:= )
-	embree? ( >=media-libs/embree-3.10.0[raymask] )
+	embree? ( >=media-libs/embree-3.13.0[raymask] )
 	ffmpeg? ( media-video/ffmpeg:=[x264,mp3,encode,theora,jpeg2k?,vpx,vorbis,opus,xvid] )
 	fftw? ( sci-libs/fftw:3.0= )
 	gmp? ( dev-libs/gmp )
@@ -81,15 +83,15 @@ RDEPEND="${PYTHON_DEPS}
 	)
 	nls? ( virtual/libiconv )
 	openal? ( media-libs/openal )
-	oidn? ( >=media-libs/oidn-1.4.1 )
+	oidn? ( >=media-libs/oidn-1.4.0 )
 	openexr? (
 		>=dev-libs/imath-3.1.4-r2:=
 		>=media-libs/openexr-3:0=
 	)
-	openpgl? ( media-libs/openpgl )
-	opensubdiv? ( >=media-libs/opensubdiv-3.4.0 )
+	openpgl? ( >=media-libs/openpgl-0.5.0 )
+	opensubdiv? ( >=media-libs/opensubdiv-3.5.0 )
 	openvdb? (
-		>=media-gfx/openvdb-9.0.0:=[nanovdb?]
+		>=media-gfx/openvdb-10.0.0:=[nanovdb?]
 		dev-libs/c-blosc:=
 	)
 	optix? ( <dev-libs/optix-7.5.0 )
@@ -107,6 +109,7 @@ RDEPEND="${PYTHON_DEPS}
 		>=dev-libs/wayland-1.12
 		>=dev-libs/wayland-protocols-1.15
 		>=x11-libs/libxkbcommon-0.2.0
+		dev-util/wayland-scanner
 		media-libs/mesa[wayland]
 		sys-apps/dbus
 	)
@@ -172,7 +175,7 @@ src_unpack() {
 		git-r3_src_unpack
 
 		git-r3_fetch "${ADDONS_EGIT_REPO_URI}"
-		git-r3_checkout "${ADDONS_EGIT_REPO_URI} ${S}/scripts/addons"
+		git-r3_checkout "${ADDONS_EGIT_REPO_URI}" "${S}/scripts/addons"
 
 		if use test; then
 			TESTS_SVN_URL=https://svn.blender.org/svnroot/bf-blender/trunk/lib/tests
@@ -202,22 +205,30 @@ src_prepare() {
 		-i doc/doxygen/Doxyfile || die
 
 	# Prepare icons and .desktop files for slotting.
-	sed -e "s|blender.svg|blender-${BV}.svg|" -i source/creator/CMakeLists.txt || die
-	sed -e "s|blender-symbolic.svg|blender-${BV}-symbolic.svg|" -i source/creator/CMakeLists.txt || die
-	sed -e "s|blender.desktop|blender-${BV}.desktop|" -i source/creator/CMakeLists.txt || die
-
-	sed -e "s|Name=Blender|Name=Blender ${PV}|" -i release/freedesktop/blender.desktop || die
-	sed -e "s|Exec=blender|Exec=blender-${BV}|" -i release/freedesktop/blender.desktop || die
-	sed -e "s|Icon=blender|Icon=blender-${BV}|" -i release/freedesktop/blender.desktop || die
-
-	mv release/freedesktop/icons/scalable/apps/blender.svg "release/freedesktop/icons/scalable/apps/blender-${BV}.svg" || die
-	mv release/freedesktop/icons/symbolic/apps/blender-symbolic.svg "release/freedesktop/icons/symbolic/apps/blender-${BV}-symbolic.svg" || die
+	sed \
+		-e "s|blender.svg|blender-${BV}.svg|" \
+		-e "s|blender-symbolic.svg|blender-${BV}-symbolic.svg|" \
+		-e "s|blender.desktop|blender-${BV}.desktop|" \
+		-i source/creator/CMakeLists.txt || die
+
+	sed \
+		-e "s|Name=Blender|Name=Blender ${PV}|" \
+		-e "s|Exec=blender|Exec=blender-${BV}|" \
+		-e "s|Icon=blender|Icon=blender-${BV}|" \
+		-i release/freedesktop/blender.desktop || die
+
+	mv \
+		release/freedesktop/icons/scalable/apps/blender.svg \
+		"release/freedesktop/icons/scalable/apps/blender-${BV}.svg" || die
+	mv \
+		release/freedesktop/icons/symbolic/apps/blender-symbolic.svg \
+		"release/freedesktop/icons/symbolic/apps/blender-${BV}-symbolic.svg" || die
 	mv release/freedesktop/blender.desktop "release/freedesktop/blender-${BV}.desktop" || die
 
 	if use test; then
 		# Without this the tests will try to use /usr/bin/blender and /usr/share/blender/ to run the tests.
-		sed -e "s|set(TEST_INSTALL_DIR.*|set(TEST_INSTALL_DIR ${ED}/usr/)|g" -i tests/CMakeLists.txt || die
-		sed -e "s|string(REPLACE.*|set(TEST_INSTALL_DIR ${ED}/usr/)|g" -i build_files/cmake/Modules/GTestTesting.cmake || die
+		sed -e "s|set(TEST_INSTALL_DIR.*|set(TEST_INSTALL_DIR ${T}/usr)|g" -i tests/CMakeLists.txt || die
+		sed -e "s|string(REPLACE.*|set(TEST_INSTALL_DIR ${T}/usr)|g" -i build_files/cmake/Modules/GTestTesting.cmake || die
 	fi
 }
 
@@ -226,46 +237,49 @@ src_configure() {
 	blender_get_version
 
 	local mycmakeargs=(
-		-DBUILD_SHARED_LIBS=OFF
+		-DWITH_LIBS_PRECOMPILED=no
+		-DBUILD_SHARED_LIBS=no
 		-DPYTHON_INCLUDE_DIR="$(python_get_includedir)"
 		-DPYTHON_LIBRARY="$(python_get_library_path)"
 		-DPYTHON_VERSION="${EPYTHON/python/}"
 		-DWITH_ALEMBIC=$(usex alembic)
-		-DWITH_ASSERT_ABORT=$(usex debug)
-		-DWITH_BOOST=ON
+		-DWITH_BOOST=yes
 		-DWITH_BULLET=$(usex bullet)
 		-DWITH_CODEC_FFMPEG=$(usex ffmpeg)
 		-DWITH_CODEC_SNDFILE=$(usex sndfile)
-		-DWITH_CXX_GUARDEDALLOC=$(usex debug)
 		-DWITH_CYCLES=$(usex cycles)
-		-DWITH_CYCLES_CUDA_BINARIES=$(usex cycles-bin-kernels)
-		-DWITH_CYCLES_DEVICE_CUDA=$(usex cuda TRUE FALSE)
+		-DWITH_CYCLES_CUDA_BINARIES=$(usex cuda $(usex cycles-bin-kernels))
+		-DWITH_CYCLES_DEVICE_ONEAPI=no
+		-DWITH_CYCLES_DEVICE_CUDA=$(usex cuda)
+		-DWITH_CYCLES_DEVICE_HIP=no
 		-DWITH_CYCLES_DEVICE_OPTIX=$(usex optix)
 		-DWITH_CYCLES_EMBREE=$(usex embree)
+		-DWITH_CYCLES_HIP_BINARIES=no
+		-DWITH_CYCLES_ONEAPI_BINARIES=no
 		-DWITH_CYCLES_OSL=$(usex osl)
 		-DWITH_CYCLES_PATH_GUIDING=$(usex openpgl)
-		-DWITH_CYCLES_STANDALONE=OFF
-		-DWITH_CYCLES_STANDALONE_GUI=OFF
+		-DWITH_CYCLES_STANDALONE=no
+		-DWITH_CYCLES_STANDALONE_GUI=no
 		-DWITH_DOC_MANPAGE=$(usex man)
 		-DWITH_FFTW3=$(usex fftw)
 		-DWITH_GHOST_WAYLAND=$(usex wayland)
 		-DWITH_GHOST_WAYLAND_APP_ID="blender-${BV}"
 		-DWITH_GHOST_WAYLAND_DBUS=$(usex wayland)
-		-DWITH_GHOST_WAYLAND_DYNLOAD=OFF
-		-DWITH_GHOST_WAYLAND_LIBDECOR=OFF
+		-DWITH_GHOST_WAYLAND_DYNLOAD=no
+		-DWITH_GHOST_WAYLAND_LIBDECOR=no
 		-DWITH_GHOST_X11=$(usex X)
 		-DWITH_GMP=$(usex gmp)
 		-DWITH_GTESTS=$(usex test)
 		-DWITH_HARU=$(usex pdf)
 		-DWITH_HEADLESS=$($(use X || use wayland) && echo OFF || echo ON)
-		-DWITH_INSTALL_PORTABLE=OFF
-		-DWITH_IMAGE_DDS=$(usex dds)
+		-DWITH_INSTALL_PORTABLE=no
 		-DWITH_IMAGE_OPENEXR=$(usex openexr)
 		-DWITH_IMAGE_OPENJPEG=$(usex jpeg2k)
-		-DWITH_IMAGE_TIFF=$(usex tiff)
+		-DWITH_IMAGE_WEBP=$(usex webp)
 		-DWITH_INPUT_NDOF=$(usex ndof)
 		-DWITH_INTERNATIONAL=$(usex nls)
 		-DWITH_JACK=$(usex jack)
+		-DWITH_MATERIALX=no
 		-DWITH_MEM_JEMALLOC=$(usex jemalloc)
 		-DWITH_MEM_VALGRIND=$(usex valgrind)
 		-DWITH_MOD_FLUID=$(usex fluid)
@@ -282,15 +296,21 @@ src_configure() {
 		-DWITH_POTRACE=$(usex potrace)
 		-DWITH_PUGIXML=$(usex pugixml)
 		-DWITH_PULSEAUDIO=$(usex pulseaudio)
-		-DWITH_PYTHON_INSTALL=OFF
+		-DWITH_PYTHON_INSTALL=no
+		-DWITH_DRACO=no
+		-DWITH_PYTHON_INSTALL_NUMPY=no
+		-DWITH_PYTHON_INSTALL_ZSTANDARD=no
 		-DWITH_SDL=$(usex sdl)
-		-DWITH_STATIC_LIBS=OFF
-		-DWITH_SYSTEM_EIGEN3=ON
-		-DWITH_SYSTEM_FREETYPE=ON
-		-DWITH_SYSTEM_LZO=ON
+		-DWITH_STATIC_LIBS=no
+		-DWITH_SYSTEM_EIGEN3=yes
+		-DWITH_SYSTEM_FREETYPE=yes
+		-DWITH_SYSTEM_LZO=yes
 		-DWITH_TBB=$(usex tbb)
-		-DWITH_USD=OFF
-		-DWITH_XR_OPENXR=OFF
+
+		-DWITH_USD=no
+		-DWITH_HYDRA=no
+
+		-DWITH_XR_OPENXR=no
 	)
 
 	if use optix; then
@@ -303,14 +323,38 @@ src_configure() {
 	# This is currently needed on arm64 to get the NEON SIMD wrapper to compile the code successfully
 	use arm64 && append-flags -flax-vector-conversions
 
-	append-flags $(usex debug '-DDEBUG' '-DNDEBUG')
+	append-cflags $(usex debug '-DDEBUG' '-DNDEBUG')
+	append-cppflags $(usex debug '-DDEBUG' '-DNDEBUG')
 
 	if tc-is-gcc ; then
 		# These options only exist when GCC is detected.
 		# We disable these to respect the user's choice of linker.
 		mycmakeargs+=(
-			-DWITH_LINKER_GOLD=OFF
-			-DWITH_LINKER_LLD=OFF
+			-DWITH_LINKER_GOLD=no
+			-DWITH_LINKER_LLD=no
+		)
+		# Ease compiling with required gcc similar to cuda_sanitize but for cmake
+		use cuda && use cycles-bin-kernels && mycmakeargs+=( -DCUDA_HOST_COMPILER="$(cuda_gccdir)" )
+	fi
+	if tc-is-clang ; then
+		mycmakeargs+=(
+			-DWITH_CLANG=yes
+			-DWITH_LLVM=yes
+		)
+	fi
+
+	if use test ; then
+		local CYCLES_TEST_DEVICES=( "CPU" )
+		if use cycles-bin-kernels; then
+			use cuda && CYCLES_TEST_DEVICES+=( "CUDA" )
+			use optix && CYCLES_TEST_DEVICES+=( "OPTIX" )
+		fi
+		mycmakeargs+=(
+			-DCYCLES_TEST_DEVICES:STRING="$(local IFS=";"; echo "${CYCLES_TEST_DEVICES[*]}")"
+			-DWITH_COMPOSITOR_REALTIME_TESTS=yes
+			-DWITH_GTESTS=yes
+			-DWITH_OPENGL_DRAW_TESTS=yes
+			-DWITH_OPENGL_RENDER_TESTS=yes
 		)
 	fi
 
@@ -320,13 +364,13 @@ src_configure() {
 src_test() {
 	# A lot of tests needs to have access to the installed data files.
 	# So install them into the image directory now.
-	cmake_src_install
+	DESTDIR="${T}" cmake_build install "$@"
 
 	blender_get_version
 	# Define custom blender data/script file paths not be able to find them otherwise during testing.
 	# (Because the data is in the image directory and it will default to look in /usr/share)
-	export BLENDER_SYSTEM_SCRIPTS="${ED}"/usr/share/blender/${BV}/scripts
-	export BLENDER_SYSTEM_DATAFILES="${ED}"/usr/share/blender/${BV}/datafiles
+	export BLENDER_SYSTEM_SCRIPTS="${T}/usr/share/blender/${BV}/scripts"
+	export BLENDER_SYSTEM_DATAFILES="${T}/usr/share/blender/${BV}/datafiles"
 
 	# Sanity check that the script and datafile path is valid.
 	# If they are not vaild, blender will fallback to the default path which is not what we want.
@@ -336,7 +380,7 @@ src_test() {
 	cmake_src_test
 
 	# Clean up the image directory for src_install
-	rm -fr "${ED}"/* || die
+	rm -fr "${T}"/usr || die
 }
 
 src_install() {

diff --git a/media-gfx/blender/blender-9999.ebuild b/media-gfx/blender/blender-9999.ebuild
index d4e734739dd6..5f522c229202 100644
--- a/media-gfx/blender/blender-9999.ebuild
+++ b/media-gfx/blender/blender-9999.ebuild
@@ -3,9 +3,9 @@
 
 EAPI=8
 
-PYTHON_COMPAT=( python3_10 python3_11 )
+PYTHON_COMPAT=( python3_{10..12} )
 
-inherit check-reqs cmake flag-o-matic pax-utils python-single-r1 toolchain-funcs xdg-utils
+inherit check-reqs cmake cuda flag-o-matic pax-utils python-single-r1 toolchain-funcs xdg-utils
 
 DESCRIPTION="3D Creation/Animation/Publishing System"
 HOMEPAGE="https://www.blender.org"
@@ -25,12 +25,12 @@ fi
 
 SLOT="${PV%.*}"
 LICENSE="|| ( GPL-3 BL )"
-IUSE="+bullet +dds +fluid +openexr +tbb
+IUSE="+bullet +fluid +openexr +tbb
 	alembic collada +color-management cuda +cycles cycles-bin-kernels
-	debug doc +embree +ffmpeg +fftw +gmp jack jemalloc jpeg2k
+	debug doc +embree +ffmpeg +fftw +gmp hip jack jemalloc jpeg2k
 	man +nanovdb ndof nls openal +oidn +openmp +openpgl +opensubdiv
 	+openvdb optix osl +pdf +potrace +pugixml pulseaudio sdl
-	+sndfile test +tiff valgrind wayland X"
+	+sndfile test +tiff valgrind wayland +webp X"
 RESTRICT="!test? ( test )"
 
 REQUIRED_USE="${PYTHON_REQUIRED_USE}
@@ -38,6 +38,8 @@ REQUIRED_USE="${PYTHON_REQUIRED_USE}
 	cuda? ( cycles )
 	cycles? ( openexr tiff )
 	fluid? ( tbb )
+	hip? ( cycles )
+	nanovdb? ( openvdb )
 	openvdb? ( tbb )
 	optix? ( cuda )
 	osl? ( cycles )
@@ -46,6 +48,7 @@ REQUIRED_USE="${PYTHON_REQUIRED_USE}
 # Library versions for official builds can be found in the blender source directory in:
 # build_files/build_environment/install_deps.sh
 RDEPEND="${PYTHON_DEPS}
+	app-arch/zstd
 	dev-libs/boost:=[nls?]
 	dev-libs/lzo:2=
 	$(python_gen_cond_dep '
@@ -68,10 +71,11 @@ RDEPEND="${PYTHON_DEPS}
 	collada? ( >=media-libs/opencollada-1.6.68 )
 	color-management? ( media-libs/opencolorio:= )
 	cuda? ( dev-util/nvidia-cuda-toolkit:= )
-	embree? ( >=media-libs/embree-3.10.0[raymask] )
+	embree? ( >=media-libs/embree-3.13.0[raymask] )
 	ffmpeg? ( media-video/ffmpeg:=[x264,mp3,encode,theora,jpeg2k?,vpx,vorbis,opus,xvid] )
 	fftw? ( sci-libs/fftw:3.0= )
 	gmp? ( dev-libs/gmp )
+	hip? ( dev-util/hip )
 	jack? ( virtual/jack )
 	jemalloc? ( dev-libs/jemalloc:= )
 	jpeg2k? ( media-libs/openjpeg:2= )
@@ -81,15 +85,15 @@ RDEPEND="${PYTHON_DEPS}
 	)
 	nls? ( virtual/libiconv )
 	openal? ( media-libs/openal )
-	oidn? ( >=media-libs/oidn-1.4.1 )
+	oidn? ( >=media-libs/oidn-1.4.0 )
 	openexr? (
 		>=dev-libs/imath-3.1.4-r2:=
 		>=media-libs/openexr-3:0=
 	)
-	openpgl? ( media-libs/openpgl )
-	opensubdiv? ( >=media-libs/opensubdiv-3.4.0 )
+	openpgl? ( >=media-libs/openpgl-0.5.0 )
+	opensubdiv? ( >=media-libs/opensubdiv-3.5.0 )
 	openvdb? (
-		>=media-gfx/openvdb-9.0.0:=[nanovdb?]
+		>=media-gfx/openvdb-10.0.0:=[nanovdb?]
 		dev-libs/c-blosc:=
 	)
 	optix? ( <dev-libs/optix-7.5.0 )
@@ -107,6 +111,7 @@ RDEPEND="${PYTHON_DEPS}
 		>=dev-libs/wayland-1.12
 		>=dev-libs/wayland-protocols-1.15
 		>=x11-libs/libxkbcommon-0.2.0
+		dev-util/wayland-scanner
 		media-libs/mesa[wayland]
 		sys-apps/dbus
 	)
@@ -172,7 +177,7 @@ src_unpack() {
 		git-r3_src_unpack
 
 		git-r3_fetch "${ADDONS_EGIT_REPO_URI}"
-		git-r3_checkout "${ADDONS_EGIT_REPO_URI} ${S}/scripts/addons"
+		git-r3_checkout "${ADDONS_EGIT_REPO_URI}" "${S}/scripts/addons"
 
 		if use test; then
 			TESTS_SVN_URL=https://svn.blender.org/svnroot/bf-blender/trunk/lib/tests
@@ -202,22 +207,30 @@ src_prepare() {
 		-i doc/doxygen/Doxyfile || die
 
 	# Prepare icons and .desktop files for slotting.
-	sed -e "s|blender.svg|blender-${BV}.svg|" -i source/creator/CMakeLists.txt || die
-	sed -e "s|blender-symbolic.svg|blender-${BV}-symbolic.svg|" -i source/creator/CMakeLists.txt || die
-	sed -e "s|blender.desktop|blender-${BV}.desktop|" -i source/creator/CMakeLists.txt || die
-
-	sed -e "s|Name=Blender|Name=Blender ${PV}|" -i release/freedesktop/blender.desktop || die
-	sed -e "s|Exec=blender|Exec=blender-${BV}|" -i release/freedesktop/blender.desktop || die
-	sed -e "s|Icon=blender|Icon=blender-${BV}|" -i release/freedesktop/blender.desktop || die
-
-	mv release/freedesktop/icons/scalable/apps/blender.svg "release/freedesktop/icons/scalable/apps/blender-${BV}.svg" || die
-	mv release/freedesktop/icons/symbolic/apps/blender-symbolic.svg "release/freedesktop/icons/symbolic/apps/blender-${BV}-symbolic.svg" || die
+	sed \
+		-e "s|blender.svg|blender-${BV}.svg|" \
+		-e "s|blender-symbolic.svg|blender-${BV}-symbolic.svg|" \
+		-e "s|blender.desktop|blender-${BV}.desktop|" \
+		-i source/creator/CMakeLists.txt || die
+
+	sed \
+		-e "s|Name=Blender|Name=Blender ${PV}|" \
+		-e "s|Exec=blender|Exec=blender-${BV}|" \
+		-e "s|Icon=blender|Icon=blender-${BV}|" \
+		-i release/freedesktop/blender.desktop || die
+
+	mv \
+		release/freedesktop/icons/scalable/apps/blender.svg \
+		"release/freedesktop/icons/scalable/apps/blender-${BV}.svg" || die
+	mv \
+		release/freedesktop/icons/symbolic/apps/blender-symbolic.svg \
+		"release/freedesktop/icons/symbolic/apps/blender-${BV}-symbolic.svg" || die
 	mv release/freedesktop/blender.desktop "release/freedesktop/blender-${BV}.desktop" || die
 
 	if use test; then
 		# Without this the tests will try to use /usr/bin/blender and /usr/share/blender/ to run the tests.
-		sed -e "s|set(TEST_INSTALL_DIR.*|set(TEST_INSTALL_DIR ${ED}/usr/)|g" -i tests/CMakeLists.txt || die
-		sed -e "s|string(REPLACE.*|set(TEST_INSTALL_DIR ${ED}/usr/)|g" -i build_files/cmake/Modules/GTestTesting.cmake || die
+		sed -e "s|set(TEST_INSTALL_DIR.*|set(TEST_INSTALL_DIR ${T}/usr)|g" -i tests/CMakeLists.txt || die
+		sed -e "s|string(REPLACE.*|set(TEST_INSTALL_DIR ${T}/usr)|g" -i build_files/cmake/Modules/GTestTesting.cmake || die
 	fi
 }
 
@@ -226,46 +239,49 @@ src_configure() {
 	blender_get_version
 
 	local mycmakeargs=(
-		-DBUILD_SHARED_LIBS=OFF
+		-DWITH_LIBS_PRECOMPILED=no
+		-DBUILD_SHARED_LIBS=no
 		-DPYTHON_INCLUDE_DIR="$(python_get_includedir)"
 		-DPYTHON_LIBRARY="$(python_get_library_path)"
 		-DPYTHON_VERSION="${EPYTHON/python/}"
 		-DWITH_ALEMBIC=$(usex alembic)
-		-DWITH_ASSERT_ABORT=$(usex debug)
-		-DWITH_BOOST=ON
+		-DWITH_BOOST=yes
 		-DWITH_BULLET=$(usex bullet)
 		-DWITH_CODEC_FFMPEG=$(usex ffmpeg)
 		-DWITH_CODEC_SNDFILE=$(usex sndfile)
-		-DWITH_CXX_GUARDEDALLOC=$(usex debug)
 		-DWITH_CYCLES=$(usex cycles)
-		-DWITH_CYCLES_CUDA_BINARIES=$(usex cycles-bin-kernels)
-		-DWITH_CYCLES_DEVICE_CUDA=$(usex cuda TRUE FALSE)
+		-DWITH_CYCLES_CUDA_BINARIES=$(usex cuda $(usex cycles-bin-kernels))
+		-DWITH_CYCLES_DEVICE_ONEAPI=no
+		-DWITH_CYCLES_DEVICE_CUDA=$(usex cuda)
+		-DWITH_CYCLES_DEVICE_HIP=$(usex hip)
 		-DWITH_CYCLES_DEVICE_OPTIX=$(usex optix)
 		-DWITH_CYCLES_EMBREE=$(usex embree)
+		-DWITH_CYCLES_HIP_BINARIES=$(usex hip $(usex cycles-bin-kernels))
+		-DWITH_CYCLES_ONEAPI_BINARIES=no
 		-DWITH_CYCLES_OSL=$(usex osl)
 		-DWITH_CYCLES_PATH_GUIDING=$(usex openpgl)
-		-DWITH_CYCLES_STANDALONE=OFF
-		-DWITH_CYCLES_STANDALONE_GUI=OFF
+		-DWITH_CYCLES_STANDALONE=no
+		-DWITH_CYCLES_STANDALONE_GUI=no
 		-DWITH_DOC_MANPAGE=$(usex man)
 		-DWITH_FFTW3=$(usex fftw)
 		-DWITH_GHOST_WAYLAND=$(usex wayland)
 		-DWITH_GHOST_WAYLAND_APP_ID="blender-${BV}"
 		-DWITH_GHOST_WAYLAND_DBUS=$(usex wayland)
-		-DWITH_GHOST_WAYLAND_DYNLOAD=OFF
-		-DWITH_GHOST_WAYLAND_LIBDECOR=OFF
+		-DWITH_GHOST_WAYLAND_DYNLOAD=no
+		-DWITH_GHOST_WAYLAND_LIBDECOR=no
 		-DWITH_GHOST_X11=$(usex X)
 		-DWITH_GMP=$(usex gmp)
 		-DWITH_GTESTS=$(usex test)
 		-DWITH_HARU=$(usex pdf)
 		-DWITH_HEADLESS=$($(use X || use wayland) && echo OFF || echo ON)
-		-DWITH_INSTALL_PORTABLE=OFF
-		-DWITH_IMAGE_DDS=$(usex dds)
+		-DWITH_INSTALL_PORTABLE=no
 		-DWITH_IMAGE_OPENEXR=$(usex openexr)
 		-DWITH_IMAGE_OPENJPEG=$(usex jpeg2k)
-		-DWITH_IMAGE_TIFF=$(usex tiff)
+		-DWITH_IMAGE_WEBP=$(usex webp)
 		-DWITH_INPUT_NDOF=$(usex ndof)
 		-DWITH_INTERNATIONAL=$(usex nls)
 		-DWITH_JACK=$(usex jack)
+		-DWITH_MATERIALX=no
 		-DWITH_MEM_JEMALLOC=$(usex jemalloc)
 		-DWITH_MEM_VALGRIND=$(usex valgrind)
 		-DWITH_MOD_FLUID=$(usex fluid)
@@ -282,15 +298,21 @@ src_configure() {
 		-DWITH_POTRACE=$(usex potrace)
 		-DWITH_PUGIXML=$(usex pugixml)
 		-DWITH_PULSEAUDIO=$(usex pulseaudio)
-		-DWITH_PYTHON_INSTALL=OFF
+		-DWITH_PYTHON_INSTALL=no
+		-DWITH_DRACO=no
+		-DWITH_PYTHON_INSTALL_NUMPY=no
+		-DWITH_PYTHON_INSTALL_ZSTANDARD=no
 		-DWITH_SDL=$(usex sdl)
-		-DWITH_STATIC_LIBS=OFF
-		-DWITH_SYSTEM_EIGEN3=ON
-		-DWITH_SYSTEM_FREETYPE=ON
-		-DWITH_SYSTEM_LZO=ON
+		-DWITH_STATIC_LIBS=no
+		-DWITH_SYSTEM_EIGEN3=yes
+		-DWITH_SYSTEM_FREETYPE=yes
+		-DWITH_SYSTEM_LZO=yes
 		-DWITH_TBB=$(usex tbb)
-		-DWITH_USD=OFF
-		-DWITH_XR_OPENXR=OFF
+
+		-DWITH_USD=no
+		-DWITH_HYDRA=no
+
+		-DWITH_XR_OPENXR=no
 	)
 
 	if use optix; then
@@ -303,14 +325,39 @@ src_configure() {
 	# This is currently needed on arm64 to get the NEON SIMD wrapper to compile the code successfully
 	use arm64 && append-flags -flax-vector-conversions
 
-	append-flags $(usex debug '-DDEBUG' '-DNDEBUG')
+	append-cflags $(usex debug '-DDEBUG' '-DNDEBUG')
+	append-cppflags $(usex debug '-DDEBUG' '-DNDEBUG')
 
 	if tc-is-gcc ; then
 		# These options only exist when GCC is detected.
 		# We disable these to respect the user's choice of linker.
 		mycmakeargs+=(
-			-DWITH_LINKER_GOLD=OFF
-			-DWITH_LINKER_LLD=OFF
+			-DWITH_LINKER_GOLD=no
+			-DWITH_LINKER_LLD=no
+		)
+		# Ease compiling with required gcc similar to cuda_sanitize but for cmake
+		use cuda && use cycles-bin-kernels && mycmakeargs+=( -DCUDA_HOST_COMPILER="$(cuda_gccdir)" )
+	fi
+	if tc-is-clang ; then
+		mycmakeargs+=(
+			-DWITH_CLANG=yes
+			-DWITH_LLVM=yes
+		)
+	fi
+
+	if use test ; then
+		local CYCLES_TEST_DEVICES=( "CPU" )
+		if use cycles-bin-kernels; then
+			use cuda && CYCLES_TEST_DEVICES+=( "CUDA" )
+			use optix && CYCLES_TEST_DEVICES+=( "OPTIX" )
+			use hip && CYCLES_TEST_DEVICES+=( "HIP" )
+		fi
+		mycmakeargs+=(
+			-DCYCLES_TEST_DEVICES:STRING="$(local IFS=";"; echo "${CYCLES_TEST_DEVICES[*]}")"
+			-DWITH_COMPOSITOR_REALTIME_TESTS=yes
+			-DWITH_GTESTS=yes
+			-DWITH_OPENGL_DRAW_TESTS=yes
+			-DWITH_OPENGL_RENDER_TESTS=yes
 		)
 	fi
 
@@ -320,13 +367,13 @@ src_configure() {
 src_test() {
 	# A lot of tests needs to have access to the installed data files.
 	# So install them into the image directory now.
-	cmake_src_install
+	DESTDIR="${T}" cmake_build install "$@"
 
 	blender_get_version
 	# Define custom blender data/script file paths not be able to find them otherwise during testing.
 	# (Because the data is in the image directory and it will default to look in /usr/share)
-	export BLENDER_SYSTEM_SCRIPTS="${ED}"/usr/share/blender/${BV}/scripts
-	export BLENDER_SYSTEM_DATAFILES="${ED}"/usr/share/blender/${BV}/datafiles
+	export BLENDER_SYSTEM_SCRIPTS="${T}/usr/share/blender/${BV}/scripts"
+	export BLENDER_SYSTEM_DATAFILES="${T}/usr/share/blender/${BV}/datafiles"
 
 	# Sanity check that the script and datafile path is valid.
 	# If they are not vaild, blender will fallback to the default path which is not what we want.
@@ -336,7 +383,7 @@ src_test() {
 	cmake_src_test
 
 	# Clean up the image directory for src_install
-	rm -fr "${ED}"/* || die
+	rm -fr "${T}"/usr || die
 }
 
 src_install() {

diff --git a/media-gfx/blender/metadata.xml b/media-gfx/blender/metadata.xml
index 5b6cbb8d18d1..533ef36d911a 100644
--- a/media-gfx/blender/metadata.xml
+++ b/media-gfx/blender/metadata.xml
@@ -33,6 +33,9 @@
 		<flag name="cuda">
 			Build cycles renderer with nVidia CUDA support.
 		</flag>
+		<flag name="hip">
+			Build cycles renderer with AMD HIP support.
+		</flag>
 		<flag name="cycles">
 			Build cycles renderer (requires <pkg>media-libs/openimageio</pkg> and
 			<pkg>dev-libs/boost</pkg>).


             reply	other threads:[~2023-11-22 11:38 UTC|newest]

Thread overview: 194+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-22 11:38 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-03-07 13:22 [gentoo-commits] repo/gentoo:master commit in: media-gfx/blender/ Sam James
2025-02-13  8:53 Joonas Niilola
2025-01-06  7:58 Joonas Niilola
2024-12-22  1:30 Sam James
2024-12-22  1:30 Sam James
2024-12-01  8:34 Sam James
2024-12-01  8:34 Sam James
2024-12-01  8:34 Sam James
2024-12-01  8:34 Sam James
2024-11-23  7:52 Joonas Niilola
2024-11-23  7:27 Joonas Niilola
2024-11-22 18:39 Joonas Niilola
2024-09-04  9:32 Sam James
2024-09-04  9:22 Sam James
2024-09-04  9:22 Sam James
2024-09-04  9:22 Sam James
2024-09-04  9:22 Sam James
2024-07-15 11:27 Joonas Niilola
2024-07-05 23:30 Sam James
2024-06-29 16:51 Sam James
2024-06-29 16:51 Sam James
2024-06-02 21:14 Sam James
2024-04-23 21:00 Sam James
2024-04-12 13:08 Joonas Niilola
2024-04-11 16:29 Sam James
2024-04-09 23:01 Sam James
2024-04-07 13:46 Sam James
2024-03-25 18:57 Sam James
2024-03-25 18:57 Sam James
2024-03-25 18:57 Sam James
2024-03-25 18:57 Sam James
2024-03-25 18:57 Sam James
2024-03-25 18:57 Sam James
2024-03-25 18:57 Sam James
2024-03-25 18:57 Sam James
2024-03-25 18:57 Sam James
2024-02-20 13:13 Joonas Niilola
2024-01-21 11:21 Sam James
2023-12-11 13:33 Joonas Niilola
2023-10-27 13:59 Florian Schmaus
2023-10-27  3:20 Sam James
2023-10-27  2:59 Sam James
2023-10-27  2:34 Sam James
2023-10-03 16:27 Sam James
2023-09-26 20:48 Sam James
2023-09-26 20:48 Sam James
2023-07-16 18:46 Sam James
2023-07-16 18:46 Sam James
2023-07-16 18:46 Sam James
2023-07-16 18:46 Sam James
2023-07-16 18:46 Sam James
2023-06-17 13:18 Andreas Sturmlechner
2023-06-16 22:59 Sam James
2023-06-10 22:56 Andreas Sturmlechner
2023-06-10 20:47 Andreas Sturmlechner
2023-05-14 17:11 Sam James
2023-05-01 15:15 Sam James
2023-05-01 15:15 Sam James
2023-05-01 15:15 Sam James
2023-05-01  1:30 Sam James
2023-04-16  3:30 Sam James
2023-04-16  3:30 Sam James
2023-04-16  3:30 Sam James
2023-04-16  3:30 Sam James
2023-04-16  3:30 Sam James
2023-04-16  3:30 Sam James
2023-02-17  5:29 Sam James
2023-02-17  5:29 Sam James
2023-02-17  5:29 Sam James
2023-02-17  5:29 Sam James
2023-02-17  5:29 Sam James
2023-02-17  5:29 Sam James
2023-02-04 11:33 Joonas Niilola
2023-01-05  5:21 Sam James
2023-01-05  5:21 Sam James
2023-01-05  5:20 Sam James
2023-01-05  5:20 Sam James
2022-12-18  8:32 Sam James
2022-12-18  8:32 Sam James
2022-12-17 19:28 Arthur Zamarin
2022-12-16  4:30 Sam James
2022-09-29 23:53 Sam James
2022-09-29 23:53 Sam James
2022-09-29 23:53 Sam James
2022-09-25 12:29 Ionen Wolkens
2022-08-11 10:55 Sam James
2022-08-11  7:33 Joonas Niilola
2022-08-11  7:33 Joonas Niilola
2022-08-11  7:33 Joonas Niilola
2022-07-09  5:57 Sam James
2022-06-20  3:06 Sam James
2022-06-16 16:30 Sam James
2022-06-16  0:39 Sam James
2022-06-15 12:29 Sam James
2022-06-07 10:27 Joonas Niilola
2022-05-20 11:25 Joonas Niilola
2022-05-20 11:25 Joonas Niilola
2022-05-20 11:25 Joonas Niilola
2022-05-20 11:25 Joonas Niilola
2022-04-17 14:56 Joonas Niilola
2022-04-17 14:56 Joonas Niilola
2022-04-01  0:09 Sam James
2022-03-14 18:51 Sam James
2022-03-14 18:43 Sam James
2022-03-14 18:43 Sam James
2022-02-28  5:21 Sam James
2022-02-26  2:16 Sam James
2022-02-20 21:10 Sam James
2022-02-20 21:10 Sam James
2022-02-20 21:10 Sam James
2022-02-20  4:49 Sam James
2022-02-20  4:45 Sam James
2022-02-18  2:20 Sam James
2022-02-18  2:20 Sam James
2022-02-18  2:20 Sam James
2022-02-15 20:26 Sam James
2022-02-12 15:38 Sam James
2022-02-12 15:01 Sam James
2022-02-12  4:49 Sam James
2022-02-12  4:36 Sam James
2022-02-12  4:35 Sam James
2022-02-12  4:35 Sam James
2022-02-12  4:35 Sam James
2022-02-12  4:35 Sam James
2022-02-07  4:20 Sam James
2021-12-04  0:54 Sam James
2021-12-04  0:54 Sam James
2021-12-03 22:51 Sam James
2021-12-03 22:51 Sam James
2021-10-31  5:53 Sam James
2021-10-31  5:53 Sam James
2021-10-30 17:18 Sam James
2021-10-29 22:23 Sam James
2021-09-19  3:09 Sam James
2021-09-19  3:09 Sam James
2021-08-18 23:34 Sam James
2021-08-18 23:34 Sam James
2021-08-04  2:15 Sam James
2021-08-04  2:15 Sam James
2021-08-04  2:15 Sam James
2021-06-12  7:35 Sam James
2021-06-12  7:19 Sam James
2021-06-10  3:35 Sam James
2021-06-10  3:35 Sam James
2021-06-10  0:51 Sam James
2021-05-31 23:49 Sam James
2021-05-31 20:53 Michał Górny
2021-05-06 21:36 Sam James
2021-03-05 18:39 Sam James
2021-02-22  9:51 Joonas Niilola
2021-02-22  9:51 Joonas Niilola
2021-02-22  9:51 Joonas Niilola
2021-02-22  9:51 Joonas Niilola
2021-02-22  7:12 Sam James
2020-12-17 15:32 Joonas Niilola
2020-12-03 13:04 Joonas Niilola
2020-12-03  7:32 Joonas Niilola
2020-12-03  7:32 Joonas Niilola
2020-12-03  7:32 Joonas Niilola
2020-12-03  7:32 Joonas Niilola
2020-12-03  7:32 Joonas Niilola
2020-11-08 10:29 Sam James
2020-10-10  7:37 Sam James
2020-10-06  2:13 Sam James
2020-08-24 13:42 Sam James
2020-08-24 13:42 Sam James
2020-04-26 10:04 Mikle Kolyada
2020-03-01 18:36 Matthias Maier
2020-02-09 16:47 Michał Górny
2019-09-13 15:43 Michał Górny
2019-06-10 19:51 Andreas Sturmlechner
2019-02-28 14:56 Mikle Kolyada
2019-02-27  4:25 Aaron Bauman
2018-08-28 14:43 Jonathan Scruggs
2018-08-28 14:43 Jonathan Scruggs
2018-08-15 17:21 Jonathan Scruggs
2018-04-20 19:43 David Seifert
2018-03-30 16:04 Aaron Bauman
2018-03-24 12:01 Michał Górny
2018-01-27 17:19 Jonathan Scruggs
2017-12-25 16:09 David Seifert
2017-01-29 17:04 Michael Palimaka
2017-01-28 15:45 Lars Wendler
2017-01-28 13:47 David Seifert
2017-01-15 13:34 David Seifert
2017-01-10 15:22 Agostino Sarubbo
2016-12-20 14:30 Tobias Klausmann
2016-10-28  5:29 Patrick Lauer
2016-10-27 18:34 David Seifert
2016-10-07 16:38 Patrice Clement
2016-06-16 20:10 Amy Winston
2016-05-28  8:30 Pacho Ramos
2015-08-14 23:18 Julian Ospald

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1700652864.8affb5749fc86c363f0a47b4931e14769918a509.sam@gentoo \
    --to=sam@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox