summaryrefslogtreecommitdiff
path: root/media-gfx/blender/blender-9999.ebuild
diff options
context:
space:
mode:
Diffstat (limited to 'media-gfx/blender/blender-9999.ebuild')
-rw-r--r--media-gfx/blender/blender-9999.ebuild119
1 files changed, 82 insertions, 37 deletions
diff --git a/media-gfx/blender/blender-9999.ebuild b/media-gfx/blender/blender-9999.ebuild
index dc32da73f1bd..aab785d58255 100644
--- a/media-gfx/blender/blender-9999.ebuild
+++ b/media-gfx/blender/blender-9999.ebuild
@@ -4,8 +4,10 @@
EAPI=8
PYTHON_COMPAT=( python3_{11..12} )
+# matches media-libs/osl
+LLVM_COMPAT=( {15..17} )
-inherit check-reqs cmake cuda flag-o-matic pax-utils python-single-r1 toolchain-funcs xdg-utils
+inherit check-reqs cmake cuda flag-o-matic llvm-r1 pax-utils python-single-r1 toolchain-funcs xdg-utils
DESCRIPTION="3D Creation/Animation/Publishing System"
HOMEPAGE="https://www.blender.org"
@@ -14,30 +16,36 @@ if [[ ${PV} = *9999* ]] ; then
EGIT_LFS="yes"
inherit git-r3
EGIT_REPO_URI="https://projects.blender.org/blender/blender.git"
+ EGIT_SUBMODULES=( '*' '-lib/*' )
ADDONS_EGIT_REPO_URI="https://projects.blender.org/blender/blender-addons.git"
+ RESTRICT="!test? ( test )"
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="
+ https://download.blender.org/source/${P}.tar.xz
+ "
+ # test? (
+ # https://projects.blender.org/blender/blender-test-data/archive/blender-v$(ver_cut 1-2)-release.tar.gz
+ # )
+ # "
KEYWORDS="~amd64 ~arm ~arm64"
+ RESTRICT="test" # the test archive returns LFS references.
fi
-SLOT="${PV%.*}"
LICENSE="|| ( GPL-3 BL )"
+SLOT="${PV%.*}"
IUSE="+bullet +fluid +openexr +tbb
alembic collada +color-management cuda +cycles cycles-bin-kernels
- debug doc +embree +ffmpeg +fftw +gmp hip jack jemalloc jpeg2k
+ debug doc +embree +ffmpeg +fftw +gmp gnome 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 +webp X"
-RESTRICT="!test? ( test )"
REQUIRED_USE="${PYTHON_REQUIRED_USE}
alembic? ( openexr )
cuda? ( cycles )
cycles? ( openexr tiff tbb )
fluid? ( tbb )
+ gnome? ( wayland )
hip? ( cycles )
nanovdb? ( openvdb )
openvdb? ( tbb openexr )
@@ -62,7 +70,7 @@ RDEPEND="${PYTHON_DEPS}
media-libs/libjpeg-turbo:=
media-libs/libpng:=
media-libs/libsamplerate
- >=media-libs/openimageio-2.4.6.0:=
+ >=media-libs/openimageio-2.5.6.0:=
sys-libs/zlib:=
virtual/glu
virtual/libintl
@@ -71,11 +79,12 @@ 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.13.0:=[raymask] )
+ embree? ( media-libs/embree:=[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-5.7.1 )
+ gnome? ( gui-libs/libdecor )
+ hip? ( >=dev-util/hip-5.7:= )
jack? ( virtual/jack )
jemalloc? ( dev-libs/jemalloc:= )
jpeg2k? ( media-libs/openjpeg:2= )
@@ -87,17 +96,23 @@ RDEPEND="${PYTHON_DEPS}
openal? ( media-libs/openal )
oidn? ( >=media-libs/oidn-2.1.0 )
openexr? (
- >=dev-libs/imath-3.1.4-r2:=
- >=media-libs/openexr-3:0=
+ >=dev-libs/imath-3.1.7:=
+ >=media-libs/openexr-3.2.1:0=
)
openpgl? ( media-libs/openpgl:= )
opensubdiv? ( >=media-libs/opensubdiv-3.5.0 )
openvdb? (
- >=media-gfx/openvdb-10.1.0:=[nanovdb?]
+ >=media-gfx/openvdb-11:=[nanovdb?]
dev-libs/c-blosc:=
)
- optix? ( <dev-libs/optix-7.5.0 )
- osl? ( media-libs/osl:= )
+ optix? ( dev-libs/optix )
+ osl? (
+ >=media-libs/osl-1.13:=
+ $(llvm_gen_dep '
+ >=media-libs/osl-1.13[llvm_slot_${LLVM_SLOT}]
+ media-libs/mesa[llvm_slot_${LLVM_SLOT}]
+ ')
+ )
pdf? ( media-libs/libharu )
potrace? ( media-gfx/potrace )
pugixml? ( dev-libs/pugixml )
@@ -141,10 +156,14 @@ BDEPEND="
wayland? (
dev-util/wayland-scanner
)
+ X? (
+ x11-base/xorg-proto
+ )
"
PATCHES=(
- "${FILESDIR}/${PN}-4.0.1-openvdb-11.patch"
+ "${FILESDIR}/${PN}-4.0.2-FindClang.patch"
+ "${FILESDIR}/${PN}-4.0.2-CUDA_NVCC_FLAGS.patch"
)
blender_check_requirements() {
@@ -172,32 +191,36 @@ pkg_pretend() {
}
pkg_setup() {
+ if use osl; then
+ llvm-r1_pkg_setup
+ fi
+
blender_check_requirements
python-single-r1_pkg_setup
}
src_unpack() {
if [[ ${PV} = *9999* ]] ; then
+ if ! use test; then
+ EGIT_SUBMODULES+=( '-tests/*' )
+ fi
git-r3_src_unpack
git-r3_fetch "${ADDONS_EGIT_REPO_URI}"
git-r3_checkout "${ADDONS_EGIT_REPO_URI}" "${S}/scripts/addons"
- # TODO
- #if use test; then
-
- #fi
else
default
+
if use test; then
- #The tests are downloaded from: https://svn.blender.org/svnroot/bf-blender/tags/blender-${SLOT}-release/lib/tests
- mkdir -p lib || die
- mv "${WORKDIR}/blender-${TEST_TARBALL_VERSION}-tests/tests" lib || die
+ mkdir -p "${S}/tests/data/" || die
+ mv blender-test-data/* "${S}/tests/data/" || die
fi
fi
-
}
src_prepare() {
+ use cuda && cuda_src_prepare
+
cmake_src_prepare
blender_get_version
@@ -220,6 +243,8 @@ src_prepare() {
-e "s|Icon=blender|Icon=blender-${BV}|" \
-i release/freedesktop/blender.desktop || die
+ sed -e "s|\${CMAKE_INSTALL_PREFIX}/\${BLENDER_BIN}|${T}/usr/\${BLENDER_BIN}|g" -i source/creator/CMakeLists.txt || die
+
mv \
release/freedesktop/icons/scalable/apps/blender.svg \
"release/freedesktop/icons/scalable/apps/blender-${BV}.svg" || die
@@ -256,7 +281,6 @@ src_configure() {
-DWITH_ALEMBIC=$(usex alembic)
-DWITH_BOOST=yes
-DWITH_BULLET=$(usex bullet)
- -DWITH_CLANG=$(usex osl)
-DWITH_CODEC_FFMPEG=$(usex ffmpeg)
-DWITH_CODEC_SNDFILE=$(usex sndfile)
-DWITH_CPU_CHECK=no
@@ -278,7 +302,7 @@ src_configure() {
-DWITH_GHOST_WAYLAND=$(usex wayland)
-DWITH_GHOST_WAYLAND_APP_ID="blender-${BV}"
-DWITH_GHOST_WAYLAND_DYNLOAD=no
- -DWITH_GHOST_WAYLAND_LIBDECOR=no
+ -DWITH_GHOST_WAYLAND_LIBDECOR="$(usex gnome)"
-DWITH_GHOST_X11=$(usex X)
-DWITH_GMP=$(usex gmp)
-DWITH_GTESTS=$(usex test)
@@ -291,7 +315,6 @@ src_configure() {
-DWITH_INPUT_NDOF=$(usex ndof)
-DWITH_INTERNATIONAL=$(usex nls)
-DWITH_JACK=$(usex jack)
- -DWITH_LLVM=$(usex osl)
-DWITH_MATERIALX=no
-DWITH_MEM_JEMALLOC=$(usex jemalloc)
-DWITH_MEM_VALGRIND=$(usex valgrind)
@@ -327,6 +350,12 @@ src_configure() {
-DWITH_XR_OPENXR=no
)
+ if use cuda; then
+ mycmakeargs+=(
+ -DCUDA_NVCC_FLAGS="--compiler-bindir;$(cuda_gccdir)"
+ )
+ fi
+
if use optix; then
mycmakeargs+=(
-DCYCLES_RUNTIME_OPTIX_ROOT_DIR="${EPREFIX}"/opt/optix
@@ -337,8 +366,8 @@ 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-cflags $(usex debug '-DDEBUG' '-DNDEBUG')
- append-cppflags $(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.
@@ -351,6 +380,13 @@ src_configure() {
use cuda && use cycles-bin-kernels && mycmakeargs+=( -DCUDA_HOST_COMPILER="$(cuda_gccdir)" )
fi
+ if tc-is-clang || use osl; then
+ mycmakeargs+=(
+ -DWITH_CLANG=yes
+ -DWITH_LLVM=yes
+ )
+ fi
+
if use test ; then
local CYCLES_TEST_DEVICES=( "CPU" )
if use cycles-bin-kernels; then
@@ -361,9 +397,8 @@ src_configure() {
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
+ -DWITH_GPU_DRAW_TESTS=yes
+ -DWITH_GPU_RENDER_TESTS=yes
)
fi
@@ -373,7 +408,7 @@ 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.
- DESTDIR="${T}" cmake_build 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.
@@ -386,10 +421,20 @@ src_test() {
[ -d "$BLENDER_SYSTEM_SCRIPTS" ] || die "The custom script path is invalid, fix the ebuild!"
[ -d "$BLENDER_SYSTEM_DATAFILES" ] || die "The custom datafiles path is invalid, fix the ebuild!"
+ if use cuda; then
+ cuda_add_sandbox -w
+ addwrite "/dev/dri/renderD128"
+ addwrite "/dev/char/"
+ fi
+
+ if use X; then
+ xdg_environment_reset
+ fi
+
cmake_src_test
# Clean up the image directory for src_install
- rm -fr "${T}"/usr || die
+ rm -fr "${T}/usr" || die
}
src_install() {
@@ -465,11 +510,11 @@ pkg_postinst() {
ewarn ""
fi
- if ! use python_single_target_python3_10; then
+ if ! use python_single_target_python3_11; then
elog "You are building Blender with a newer python version than"
elog "supported by this version upstream."
elog "If you experience breakages with e.g. plugins, please switch to"
- elog "python_single_target_python3_10 instead."
+ elog "python_single_target_python3_11 instead."
elog "Bug: https://bugs.gentoo.org/737388"
elog
fi