Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 14 Feb 2026 14:21:33 +0000
From:      Robert Clausecker <fuz@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Cc:        Shane <FreeBSD@ShaneWare.Biz>
Subject:   git: 82160875da03 - main - graphics/blender: update to 5.0.1
Message-ID:  <699084ed.466bf.432e91d5@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by fuz:

URL: https://cgit.FreeBSD.org/ports/commit/?id=82160875da03a97dcdb1178b26f29c627f11bb96

commit 82160875da03a97dcdb1178b26f29c627f11bb96
Author:     Shane <FreeBSD@ShaneWare.Biz>
AuthorDate: 2026-02-05 00:28:07 +0000
Commit:     Robert Clausecker <fuz@FreeBSD.org>
CommitDate: 2026-02-14 14:17:52 +0000

    graphics/blender: update to 5.0.1
    
     - a new port graphics/blender4 provides v4.5.x for compatibility
    
    Changelog: https://developer.blender.org/docs/release_notes/5.0/
    Changelog: https://developer.blender.org/docs/release_notes/5.0/corrective_releases/
    Changelog: https://www.blender.org/download/lts/4-5/#versions
    
    PR:             282988
    Reported by:    kunda <luzpaz@pm.me>
---
 graphics/Makefile                                  |    1 +
 graphics/blender/Makefile                          |  176 +-
 graphics/blender/Makefile.options                  |   39 +-
 graphics/blender/Makefile.versions                 |    2 +-
 graphics/blender/distinfo                          |    8 +-
 graphics/blender/files/extra-patch-simd-off        |   64 +
 graphics/blender/files/patch-CMakeLists.txt        |   14 -
 ...xtern_audaspace_plugins_ffmpeg_FFMPEGReader.cpp |   71 -
 ...xtern_audaspace_plugins_ffmpeg_FFMPEGWriter.cpp |   87 -
 graphics/blender/files/patch-fmtlib                | 3256 ++++++++++++++++++++
 .../files/patch-intern_cycles_CMakeLists.txt       |   18 +
 .../files/patch-intern_ffmpeg_ffmpeg__compat.h     |   18 -
 ...ch-source_blender_blenfont_intern_blf__glyph.cc |   14 +
 ...atch-source_blender_imbuf_intern_anim__movie.cc |   26 -
 graphics/blender/pkg-plist                         |  584 ++--
 graphics/blender4/Makefile                         |  257 ++
 graphics/blender4/Makefile.options                 |  161 +
 graphics/blender4/Makefile.versions                |    4 +
 graphics/blender4/distinfo                         |    3 +
 graphics/blender4/files/blender.in                 |    6 +
 graphics/blender4/files/extra-patch-simd-off       |   37 +
 ...xtern_audaspace_plugins_ffmpeg_FFMPEGReader.cpp |   68 +
 ...-extern_audaspace_plugins_ffmpeg_FFMPEGReader.h |   14 +
 .../files/patch-extern_lzma_CpuArch.c              |    0
 .../files/patch-intern_cycles_CMakeLists.txt       |   18 +
 ...se_freedesktop_org.blender.Blender.metainfo.xml |   10 +
 ...er_blenlib_BLI__bit__span__to__index__ranges.hh |   14 +
 ...ender_imbuf_movie_intern_movie__write__audio.cc |   21 +
 graphics/blender4/pkg-descr                        |    7 +
 graphics/blender4/pkg-plist                        | 1453 +++++++++
 30 files changed, 5840 insertions(+), 611 deletions(-)

diff --git a/graphics/Makefile b/graphics/Makefile
index aee3bf8c6003..53b66c0ad891 100644
--- a/graphics/Makefile
+++ b/graphics/Makefile
@@ -84,6 +84,7 @@
     SUBDIR += bitmap
     SUBDIR += blend2d
     SUBDIR += blender
+    SUBDIR += blender4
     SUBDIR += blender-doc
     SUBDIR += bmeps
     SUBDIR += bmp2html
diff --git a/graphics/blender/Makefile b/graphics/blender/Makefile
index f187fa70136c..2c171a7abc3e 100644
--- a/graphics/blender/Makefile
+++ b/graphics/blender/Makefile
@@ -1,58 +1,50 @@
 PORTNAME=	blender
-DISTVERSION=	4.2.0
-PORTREVISION=	16
+DISTVERSION=	5.0.1
+PORTREVISION=	0
 CATEGORIES=	graphics multimedia
 MASTER_SITES=	http://download.blender.org/source/ \
 		http://mirror.cs.umn.edu/blender.org/source/ \
 		http://public.planetmirror.com/pub/blender/source/
 
-PATCH_SITES=	https://projects.blender.org/blender/blender/commit/
-PATCHFILES=	1c69154aaf033730a9e3882574d56ca6597b84ae.patch:-p1
-
 MAINTAINER=	FreeBSD@Shaneware.biz
 COMMENT=	3D modeling/rendering/animation package
 WWW=		https://www.blender.org/
 
-BROKEN=		Does not build with ffmpeg > 6
-
 LICENSE=	GPLv3+
 LICENSE_FILE=	${WRKSRC}/doc/license/GPL3-license.txt
 
-ONLY_FOR_ARCHS=		aarch64 amd64 powerpc64 powerpc64le riscv64
+ONLY_FOR_ARCHS=		aarch64 amd64 powerpc64le riscv64
 ONLY_FOR_ARCHS_REASON=	static_assert(sizeof(unsigned long long) == sizeof(struct hipArray*))
 
 BUILD_DEPENDS=	${PYNUMPY}
-LIB_DEPENDS=	libboost_thread.so:devel/boost-libs \
-		libfreetype.so:print/freetype2 \
+LIB_DEPENDS=	libfreetype.so:print/freetype2 \
 		libepoxy.so:graphics/libepoxy \
 		libOpenImageIO.so:graphics/openimageio \
 		libpng.so:graphics/png \
+		libsamplerate.so:audio/libsamplerate \
 		libtiff.so:graphics/tiff \
 		libzstd.so:archivers/zstd
 RUN_DEPENDS=	${PYNUMPY}
-# libboost_regex.so just acts as a placeholder; several boost
-# libraries are used, if either of the most common options in blender
-# are set. We will pull boost in just to be on the safe side.
-USES=		cmake:noninja compiler:c++17-lang cpe eigen:3 jpeg llvm:build,run pkgconfig \
-		python:3.11 shebangfix tar:xz xorg
+
+USES=		cmake:noninja compiler:c++17-lang cpe eigen:3 jpeg llvm:build,run \
+		pkgconfig python:3.11 shebangfix tar:xz xorg
 USE_XORG=	x11 xext xfixes xmu xrender
 
-SHEBANG_FILES=	scripts/modules/bl_i18n_utils/merge_po.py \
-		scripts/modules/bl_i18n_utils/utils_rtl.py \
-		scripts/modules/blend_render_info.py
+SHEBANG_FILES=	scripts/modules/blend_render_info.py
 
 CMAKE_ARGS=	-DCMAKE_CXX_STANDARD:INTEGER=17 \
-		-DLLVM_CONFIG:STRING="${LOCALBASE}/bin/llvm-config${LLVM_VERSION}"
+		-DLLVM_CONFIG:STRING="${LOCALBASE}/bin/llvm-config${LLVM_VERSION}" \
+		-DCMAKE_POLICY_DEFAULT_CMP0167=NEW
 .if defined(WITH_DEBUG)
 CMAKE_ARGS+=	-DWITH_GHOST_DEBUG:BOOL=ON
 .endif
 CMAKE_ON=	WITH_AUDASPACE WITH_BOOST WITH_CLANG WITH_GHOST_X11 WITH_GHOST_XDND \
-		WITH_HYDRA WITH_IO_GPENCIL WITH_IO_PLY WITH_IO_STL WITH_IO_WAVEFRONT_OBJ \
+		WITH_HYDRA WITH_IO_PLY WITH_IO_STL WITH_IO_WAVEFRONT_OBJ \
 		WITH_LLVM WITH_OPENGL_BACKEND WITH_PYTHON WITH_SYSTEM_EIGEN3 \
-		WITH_SYSTEM_FREETYPE WITH_X11_XINPUT WITH_X11_XF86VMODE WITH_X11_XFIXES
-CMAKE_OFF=	WITH_GHOST_SDL WITH_INSTALL_PORTABLE LLVM_STATIC WITH_MATERIALX \
-		WITH_MEM_JEMALLOC WITH_MEM_VALGRIND WITH_NANOVDB WITH_PYTHON_INSTALL \
-		WITH_PYTHON_INSTALL_NUMPY
+		WITH_SYSTEM_FREETYPE WITH_X11_XINPUT WITH_X11_XFIXES
+CMAKE_OFF=	WITH_GHOST_SDL WITH_INSTALL_PORTABLE WITH_LIBS_PRECOMPILED \
+		LLVM_STATIC WITH_MEM_JEMALLOC WITH_MEM_VALGRIND \
+		WITH_NANOVDB WITH_PYTHON_INSTALL WITH_PYTHON_INSTALL_NUMPY
 
 CFLAGS+=	${CFLAGS_${CHOSEN_COMPILER_TYPE}}
 CFLAGS_gcc=	-Wno-float-conversion
@@ -65,143 +57,142 @@ OPTIONS_SUB=	yes
 
 .include "${.CURDIR}/Makefile.options"
 
+ALEMBIC_CMAKE_BOOL=		WITH_ALEMBIC
 ALEMBIC_IMPLIES=		OPENEXR
 ALEMBIC_LIB_DEPENDS=		libAlembic.so:graphics/alembic
-ALEMBIC_CMAKE_BOOL=		WITH_ALEMBIC
-AVI_CMAKE_BOOL=			WITH_CODEC_AVI
 BULLET_CMAKE_BOOL=		WITH_BULLET
-CAMERATRACK_LIB_DEPENDS=	libglog.so:devel/glog
 CAMERATRACK_CMAKE_BOOL=		WITH_LIBMV WITH_SYSTEM_GLOG
+CAMERATRACK_LIB_DEPENDS=	libglog.so:devel/glog
 CINEON_CMAKE_BOOL=		WITH_IMAGE_CINEON
-COLLADA_LIB_DEPENDS=		libOpenCOLLADABaseUtils.so:graphics/opencollada \
-				libpcre.so:devel/pcre
-COLLADA_USES=			gnome
-COLLADA_USE=			GNOME=libxml2
-COLLADA_CMAKE_BOOL=		WITH_OPENCOLLADA
-COMPOSITOR_CMAKE_BOOL=		WITH_COMPOSITOR_CPU
+CYCLES_CMAKE_BOOL=		WITH_CYCLES
 CYCLES_IMPLIES=			TBB
-CYCLES_LIB_DEPENDS=		libgflags.so:devel/gflags
-CYCLES_CMAKE_BOOL=		WITH_CYCLES WITH_CYCLES_LOGGING
 CYCLES_LDFLAGS=			-L${LOCALBASE}/lib -lgflags
-CYCLES_EMBR_IMPLIES=		CYCLES
-CYCLES_EMBR_LIB_DEPENDS=	libembree3.so:graphics/embree3
+CYCLES_LIB_DEPENDS=		libgflags.so:devel/gflags
 CYCLES_EMBR_CMAKE_BOOL=		WITH_CYCLES_EMBREE
-CYCLES_ONEAPI_LIB_DEPENDS=	libtbb.so:devel/onetbb
+CYCLES_EMBR_IMPLIES=		CYCLES
+CYCLES_EMBR_LIB_DEPENDS=	libembree4.so:graphics/embree
 CYCLES_ONEAPI_CMAKE_BOOL=	WITH_CYCLES_DEVICE_ONEAPI
-CYCLES_OSL_IMPLIES=		CYCLES OPENEXR PUGIXML
-CYCLES_OSL_LIB_DEPENDS=		liboslcomp.so:graphics/openshadinglanguage
+CYCLES_ONEAPI_LIB_DEPENDS=	libtbb.so:devel/onetbb
 CYCLES_OSL_CMAKE_BOOL=		WITH_CYCLES_OSL
 CYCLES_OSL_CMAKE_ON=		-DOSL_SHADER_DIR:STRING="${LOCALBASE}/share/openshadinglanguage/shaders"
-DRACO_USE=			LDCONFIG=${PYTHON_SITELIBDIR}
+CYCLES_OSL_IMPLIES=		CYCLES OPENEXR PUGIXML
+CYCLES_OSL_LIB_DEPENDS=		liboslcomp.so:graphics/openshadinglanguage
 DRACO_CMAKE_BOOL=		WITH_DRACO
-EBOOL_LIB_DEPENDS=		libgmp.so:math/gmp
+DRACO_USE=			LDCONFIG=${PYTHON_SITELIBDIR}
 EBOOL_CMAKE_BOOL=		WITH_GMP
-FFMPEG_LIB_DEPENDS=		libavutil.so:multimedia/ffmpeg \
-				libflite.so:audio/flite
+EBOOL_LIB_DEPENDS=		libgmp.so:math/gmp
 FFMPEG_CMAKE_BOOL=		WITH_CODEC_FFMPEG
 FFMPEG_LDFLAGS=			-L${LOCALBASE}/lib -lflite -lflite_cmu_us_kal \
 				-lflite_cmulex -lflite_usenglish
+FFMPEG_LIB_DEPENDS=		libavutil.so:multimedia/ffmpeg \
+				libflite.so:audio/flite
+FFTW3_CMAKE_BOOL=		WITH_FFTW3
 FFTW3_LIB_DEPENDS=		libfftw3.so:math/fftw3 \
 				libfftw3f.so:math/fftw3-float
-FFTW3_CMAKE_BOOL=		WITH_FFTW3
 FREESTYLE_CMAKE_BOOL=		WITH_FREESTYLE
-FRIBIDI_LIB_DEPENDS=		libfribidi.so:converters/fribidi
 FRIBIDI_CMAKE_BOOL=		WITH_FRIBIDI
-HARFBUZZ_LIB_DEPENDS=		libharfbuzz.so:print/harfbuzz
+FRIBIDI_LIB_DEPENDS=		libfribidi.so:converters/fribidi
 HARFBUZZ_CMAKE_BOOL=		WITH_HARFBUZZ
-HARU_LIB_DEPENDS=		libhpdf.so:print/libharu
+HARFBUZZ_LIB_DEPENDS=		libharfbuzz.so:print/harfbuzz
 HARU_CMAKE_BOOL=		WITH_HARU
+HARU_LIB_DEPENDS=		libhpdf.so:print/libharu
+HEADLESS_CMAKE_BOOL=		WITH_HEADLESS
 HEADLESS_PREVENTS=		MENU XINPUT XF86VMODE
 HEADLESS_PREVENTS_MSG=		X11 options can't be used in headless mode
-HEADLESS_CMAKE_BOOL=		WITH_HEADLESS
-INPUT_NDOF_LIB_DEPENDS=		libspnav.so:misc/libspnav
 INPUT_NDOF_CMAKE_BOOL=		WITH_INPUT_NDOF
-JACK_LIB_DEPENDS=		libjack.so:audio/jack
+INPUT_NDOF_LIB_DEPENDS=		libspnav.so:misc/libspnav
 JACK_CMAKE_BOOL=		WITH_JACK WITH_JACK_DYNLOAD
-LZMA_CMAKE_BOOL=		WITH_LZMA
-LZO_LIB_DEPENDS=		liblzo2.so:archivers/lzo2
-LZO_CMAKE_BOOL=			WITH_LZO WITH_SYSTEM_LZO
+JACK_LIB_DEPENDS=		libjack.so:audio/jack
+MANIFOLD_CMAKE_BOOL=		WITH_MANIFOLD
+MANIFOLD_LIB_DEPENDS=		libmanifold.so:math/manifold
+MATERIALX_CMAKE_BOOL=		WITH_MATERIALX
+MATERIALX_CMAKE_ON=		-DMaterialX_DIR:STRING=${PREFIX}/lib/cmake/MaterialX \
+				-DMATERIALX_STDLIB_DIR:STRING=${PREFIX}/share/materialx \
+				-DMATERIALX_PYTHON_DIR:STRING=${PYTHON_SITELIBDIR}/MaterialX
+MATERIALX_LIB_DEPENDS=		libMaterialXCore.so:graphics/materialx
 MENU_USES=			desktop-file-utils
-MOD_FLUID_IMPLIES=		TBB
 MOD_FLUID_CMAKE_BOOL=		WITH_MOD_FLUID
-MOD_OCEANSIM_IMPLIES=		FFTW3
+MOD_FLUID_IMPLIES=		TBB
 MOD_OCEANSIM_CMAKE_BOOL=	WITH_MOD_OCEANSIM
+MOD_OCEANSIM_IMPLIES=		FFTW3
 MOD_REMESH_CMAKE_BOOL=		WITH_MOD_REMESH
-# Use iconv:wchar_t to force the usage of iconv from ports.
-# libboost_locale.so uses libiconv_open, while we only provide
-# iconv_open in 10.x+
-NLS_USES=			gettext-tools iconv:lib,wchar_t
 NLS_CMAKE_BOOL=			WITH_INTERNATIONAL
-OPENAL_USES=			openal:al,alut
+NLS_USES=			gettext-tools
 OPENAL_CMAKE_BOOL=		WITH_OPENAL
+OPENAL_USES=			openal:al,alut
+OPENCOLORIO_CMAKE_BOOL=		WITH_OPENCOLORIO
 OPENCOLORIO_LIB_DEPENDS=	libOpenColorIO.so:graphics/opencolorio \
 				libyaml-cpp.so:devel/yaml-cpp \
 				libexpat.so:textproc/expat2 \
 				libpystring.so:devel/pystring
 OPENCOLORIO_USES=		minizip
-OPENCOLORIO_CMAKE_BOOL=		WITH_OPENCOLORIO
+OPENEXR_CFLAGS=			-I${LOCALBASE}/include/Imath
+OPENEXR_CMAKE_BOOL=		WITH_IMAGE_OPENEXR
 OPENEXR_LIB_DEPENDS=		libImath.so:math/Imath \
 				libOpenEXR.so:graphics/openexr
-OPENEXR_CMAKE_BOOL=		WITH_IMAGE_OPENEXR
-OPENEXR_CFLAGS=			-I${LOCALBASE}/include/Imath
+OPENIMAGEDN_CMAKE_BOOL=		WITH_OPENIMAGEDENOISE
 OPENIMAGEDN_IMPLIES=		TBB
 OPENIMAGEDN_LIB_DEPENDS=	libOpenImageDenoise.so:graphics/oidn
-OPENIMAGEDN_CMAKE_BOOL=		WITH_OPENIMAGEDENOISE
-OPENJPEG_LIB_DEPENDS=		libopenjp2.so:graphics/openjpeg
 OPENJPEG_CMAKE_BOOL=		WITH_IMAGE_OPENJPEG
-OPENMP_CMAKE_BOOL=		WITH_OPENMP
-OPENPGL_LIB_DEPENDS=		libopenpgl.so:graphics/openpgl
+OPENJPEG_LIB_DEPENDS=		libopenjp2.so:graphics/openjpeg
 OPENPGL_CMAKE_BOOL=		WITH_CYCLES_PATH_GUIDING
-OPENSUBDIV_LIB_DEPENDS=		libosdCPU.so:graphics/opensubdiv
+OPENPGL_LIB_DEPENDS=		libopenpgl.so:graphics/openpgl
 OPENSUBDIV_CMAKE_BOOL=		WITH_OPENSUBDIV
+OPENSUBDIV_LIB_DEPENDS=		libosdCPU.so:graphics/opensubdiv
+OPENVDB_CMAKE_BOOL=		WITH_OPENVDB WITH_OPENVDB_BLOSC
 OPENVDB_IMPLIES=		OPENEXR TBB
 OPENVDB_LIB_DEPENDS=		libopenvdb.so:misc/openvdb
-OPENVDB_CMAKE_BOOL=		WITH_OPENVDB WITH_OPENVDB_BLOSC
-OPENXR_LIB_DEPENDS=		libopenxr_loader.so:graphics/openxr
 OPENXR_CMAKE_BOOL=		WITH_XR_OPENXR
-POTRACE_LIB_DEPENDS=		libpotrace.so:graphics/libpotrace
+OPENXR_LIB_DEPENDS=		libopenxr_loader.so:graphics/openxr
+PIPEWIRE_CMAKE_BOOL=		WITH_PIPEWIRE
+PIPEWIRE_LIB_DEPENDS=		libpipewire-0.3.so:multimedia/pipewire
 POTRACE_CMAKE_BOOL=		WITH_POTRACE
-PUGIXML_LIB_DEPENDS=		libpugixml.so:textproc/pugixml
-PUGIXML_CMAKE_BOOL=		WITH_PUGIXML
-PULSEAUDIO_LIB_DEPENDS=		libpulse.so:audio/pulseaudio
+POTRACE_LIB_DEPENDS=		libpotrace.so:graphics/libpotrace
+PUGIXML_CMAKE_BOOL=		WITH_PUGIXML WITH_IO_GREASE_PENCIL
+# GP IO needs pugixml - turn it off with pugi
+PUGIXML_LDFLAGS=		-lfmt
+PUGIXML_LIB_DEPENDS=		libpugixml.so:textproc/pugixml \
+				libfmt.so:devel/libfmt
+# libfmt is in place via openimageio, add here as we need -lfmt in LDFLAGS
 PULSEAUDIO_CMAKE_BOOL=		WITH_PULSEAUDIO WITH_PULSEAUDIO_DYNLOAD
+PULSEAUDIO_LIB_DEPENDS=		libpulse.so:audio/pulseaudio
 QUADRIFLOW_CMAKE_BOOL=		WITH_QUADRIFLOW
-SDL_USES=			sdl
+RUBBERBAND_CMAKE_BOOL=		WITH_RUBBERBAND
+RUBBERBAND_LIB_DEPENDS=		librubberband.so:audio/rubberband
+SDL_CMAKE_BOOL=			WITH_SDL
 SDL_USE=			SDL=sdl2
-SDL_CMAKE_BOOL=			WITH_SDL WITH_SDL_DYNLOAD
+SDL_USES=			sdl
 SIMD_CMAKE_BOOL=		WITH_CPU_SIMD
 SIMD_EXTRA_PATCHES_OFF=		${PATCHDIR}/extra-patch-simd-off
-SNDFILE_LIB_DEPENDS=		libsndfile.so:audio/libsndfile
 SNDFILE_CMAKE_BOOL=		WITH_CODEC_SNDFILE
-TBB_LIB_DEPENDS=		libtbb.so:devel/onetbb
+SNDFILE_LIB_DEPENDS=		libsndfile.so:audio/libsndfile
 TBB_CMAKE_BOOL=			WITH_TBB
+TBB_LIB_DEPENDS=		libtbb.so:devel/onetbb
 THUMBNAILER_CMAKE_BOOL=		WITH_BLENDER_THUMBNAILER
-TRACE_LIB_DEPENDS=		libpotrace.so:graphics/libpotrace
 TRACE_CMAKE_BOOL=		WITH_POTRACE
-USD_IMPLIES=			TBB
-USD_BROKEN=			require devel/tbb, which conflicts with devel/onetbb: \
-				https://github.com/PixarAnimationStudios/OpenUSD/issues/1650
-USD_LIB_DEPENDS=		libusd_usd.so:misc/usd
+TRACE_LIB_DEPENDS=		libpotrace.so:graphics/libpotrace
+USD_BROKEN=			does not build with current USD port
 USD_CMAKE_BOOL=			WITH_USD
+USD_IMPLIES=			TBB
+USD_LIB_DEPENDS=		libusd_ms.so:misc/usd
 VULKAN_BUILD_DEPENDS=		${LOCALBASE}/include/vulkan/vulkan.h:graphics/vulkan-headers
+VULKAN_CMAKE_BOOL=		WITH_VULKAN_BACKEND
+VULKAN_LDFLAGS=			-lshaderc_shared -lSPIRV-Tools-shared
 VULKAN_LIB_DEPENDS=		libshaderc_shared.so:graphics/shaderc \
 				libSPIRV-Tools-shared.so:graphics/spirv-tools \
 				libvulkan.so:graphics/vulkan-loader
-VULKAN_CMAKE_BOOL=		WITH_VULKAN_BACKEND
-VULKAN_LDFLAGS=			-lshaderc_shared -lSPIRV-Tools-shared
-WAYLAND_CATEGORIES=		wayland
+VULKAN_USES=			localbase:ldflags # only relevant in the case of most options off
 WAYLAND_BUILD_DEPENDS=		wayland-protocols>=1.15:graphics/wayland-protocols \
 				wayland>=1.12:graphics/wayland \
 				libdecor>0:x11-toolkits/libdecor
-WAYLAND_LIB_DEPENDS=		libxkbcommon.so:x11/libxkbcommon
+WAYLAND_CATEGORIES=		wayland
 WAYLAND_CMAKE_BOOL=		WITH_GHOST_WAYLAND WITH_GHOST_WAYLAND_LIBDECOR \
 				WITH_GHOST_WAYLAND_DYNLOAD
-WEBP_LIB_DEPENDS=		libwebp.so:graphics/webp
+WAYLAND_LIB_DEPENDS=		libxkbcommon.so:x11/libxkbcommon
 WEBP_CMAKE_BOOL=		WITH_IMAGE_WEBP
-XF86VMODE_USE=			XORG=xi,xxf86vm
-XF86VMODE_CMAKE_BOOL=		WITH_X11_XF86VMODE
-XINPUT_USE=			XORG=xi
+WEBP_LIB_DEPENDS=		libwebp.so:graphics/webp
 XINPUT_CMAKE_BOOL=		WITH_X11_XINPUT
+XINPUT_USE=			XORG=xi
 
 post-patch:
 	${REINPLACE_CMD} -e 's|%%LLVM_VER%%|${LLVM_VERSION}|g' \
@@ -226,6 +217,7 @@ post-install-DRACO-on:
 	${INSTALL_LIB} ${INSTALL_WRKSRC}/lib/libextern_draco.so ${STAGEDIR}/${PYTHON_SITELIBDIR}/
 	${STRIP_CMD} ${STAGEDIR}/${PYTHON_SITELIBDIR}/libextern_draco.so
 	@${RM} -R ${STAGEDIR}/${DATADIR}/${DISTVERSION:R}/python
+	@${RM} ${STAGEDIR}/${DATADIR}/${DISTVERSION:R}/scripts/addons_core/io_scene_gltf2/libextern_draco.so
 
 post-install-MENU-on:
 	@-update-desktop-database -q
diff --git a/graphics/blender/Makefile.options b/graphics/blender/Makefile.options
index b3b984aed64c..476e05338ea7 100644
--- a/graphics/blender/Makefile.options
+++ b/graphics/blender/Makefile.options
@@ -1,11 +1,8 @@
 OPTIONS_DEFINE=		\
 	ALEMBIC		\
-	AVI		\
 	BULLET		\
 	CAMERATRACK	\
 	CINEON		\
-	COLLADA		\
-	COMPOSITOR	\
 	CYCLES		\
 	CYCLES_EMBR	\
 	CYCLES_ONEAPI	\
@@ -21,8 +18,8 @@ OPTIONS_DEFINE=		\
 	HEADLESS	\
 	INPUT_NDOF	\
 	JACK		\
-	LZMA		\
-	LZO		\
+	MANIFOLD	\
+	MATERIALX	\
 	MENU		\
 	MOD_FLUID	\
 	MOD_OCEANSIM	\
@@ -33,15 +30,16 @@ OPTIONS_DEFINE=		\
 	OPENEXR		\
 	OPENIMAGEDN	\
 	OPENJPEG	\
-	OPENMP		\
 	OPENPGL		\
 	OPENSUBDIV	\
 	OPENVDB		\
 	OPENXR		\
+	PIPEWIRE	\
 	POTRACE		\
 	PUGIXML		\
 	PULSEAUDIO	\
 	QUADRIFLOW	\
+	RUBBERBAND	\
 	SDL		\
 	SIMD		\
 	SNDFILE		\
@@ -52,16 +50,12 @@ OPTIONS_DEFINE=		\
 	VULKAN		\
 	WAYLAND		\
 	WEBP		\
-	XINPUT		\
-	XF86VMODE
+	XINPUT
 
 OPTIONS_DEFAULT=	\
 	ALEMBIC		\
-	AVI		\
 	BULLET		\
 	CINEON		\
-	COLLADA		\
-	COMPOSITOR	\
 	CYCLES		\
 	CYCLES_ONEAPI	\
 	DRACO		\
@@ -73,8 +67,8 @@ OPTIONS_DEFAULT=	\
 	HARFBUZZ	\
 	HARU		\
 	INPUT_NDOF	\
-	LZMA		\
-	LZO		\
+	MANIFOLD	\
+	MATERIALX	\
 	MENU		\
 	MOD_FLUID	\
 	MOD_OCEANSIM	\
@@ -89,14 +83,13 @@ OPTIONS_DEFAULT=	\
 	PUGIXML		\
 	PULSEAUDIO	\
 	QUADRIFLOW	\
-	SDL		\
+	RUBBERBAND	\
 	TBB		\
 	THUMBNAILER	\
 	TRACE		\
 	WAYLAND		\
 	WEBP		\
-	XINPUT		\
-	XF86VMODE
+	XINPUT
 
 # CAMERATRACK: libunwind only supports i386/amd64/aarch64/powerpc64/powerpc64le
 # CYCLES_EMBR: embree only supports amd64 and i386
@@ -108,12 +101,9 @@ OPTIONS_DEFAULT_powerpc64=	CAMERATRACK
 OPTIONS_DEFAULT_powerpc64le=	CAMERATRACK
 
 ALEMBIC_DESC=		Enable Alembic file support
-AVI_DESC=		Enable Blender's own AVI file support
 BULLET_DESC=		Bullet physics engine
 CAMERATRACK_DESC=	Camera tracking support (amd64/aarch64/powerpc64/powerpc64le only)
 CINEON_DESC=		CINEON and DPX graphics format support
-COLLADA_DESC=		Enable read/write support for COLLADA files
-COMPOSITOR_DESC=	Use the tile-based nodal compositor
 CYCLES_DESC=		Cycles render engine support
 CYCLES_EMBR_DESC=	Embree support (amd64 only)
 CYCLES_ONEAPI_DESC=	Enable Cycles oneAPI compute support
@@ -128,8 +118,8 @@ HARFBUZZ_DESC=		Enable features using harfbuzz OpenType text shaping engine
 HARU_DESC=		Enable libharu support
 HEADLESS_DESC=		Disable user interface (for render-farms)
 INPUT_NDOF_DESC=	Enable NDOF input device support
-LZMA_DESC=		Best compression support
-LZO_DESC=		Fast compression support
+MANIFOLD_DESC=		Enable manifold boolean support
+MATERIALX_DESC=		Enable MaterialX support
 MENU_DESC=		Install desktop menu
 MOD_FLUID_DESC=		Fluid simulation support
 MOD_OCEANSIM_DESC=	Ocean simulation support
@@ -141,17 +131,18 @@ OPENPGL_DESC=		Open Path Guiding in Cycles (aarch64 and amd64 only)
 OPENSUBDIV_DESC=	Use the OpenSubDiv library for surface subdivision
 OPENVDB_DESC=		Use openVDB library for volumetric data
 OPENXR_DESC=		Enable VR features through the OpenXR specification
+PIPEWIRE_DESC=		Enable Pipewire audio support
 POTRACE_DESC=		Enable features using libpotrace
 PUGIXML_DESC=		Enable pugixml support
 QUADRIFLOW_DESC=	Enable quadriflow remesher
-SDL_DESC=		Audio and Joystick support using SDL
+RUBBERBAND_DESC=	Use Rubber Band for audio time-stretching and pitch-scaling
+SDL_DESC=		Audio support using SDL
 SIMD_DESC=		Use SIMD optimized routines (on amd64 require x86-64-v2 support)
 TBB_DESC=		Enable use of Intel's tbb
 THUMBNAILER_DESC=	Build blender thumbnailer
 TRACE_DESC=		Enable tracing image to GP stroke
 USD_DESC=		Universal Scene Description Support (aarch64 and amd64 only, broken)
-VULKAN_DESC=		Enable Vulkan as graphics backend (only for development)
+VULKAN_DESC=		Enable Vulkan as graphics backend
 WAYLAND_DESC=		Wayland support
 WEBP_DESC=		Enable webp image support
-XF86VMODE_DESC=		X11 video mode switching support
 XINPUT_DESC=		X11 Xinput (tablet) support
diff --git a/graphics/blender/Makefile.versions b/graphics/blender/Makefile.versions
index 7c265f8dc837..1bcc989e4977 100644
--- a/graphics/blender/Makefile.versions
+++ b/graphics/blender/Makefile.versions
@@ -1,4 +1,4 @@
 # Versions of Blender and its python dependency for use by depending ports, like add-ons
 
-BLENDER_BL_VERSION=	4.2.0
+BLENDER_BL_VERSION=	5.0.1
 BLENDER_PY_VERSION=	3.11
diff --git a/graphics/blender/distinfo b/graphics/blender/distinfo
index a1a1b4896d9a..1d85359cbb39 100644
--- a/graphics/blender/distinfo
+++ b/graphics/blender/distinfo
@@ -1,5 +1,3 @@
-TIMESTAMP = 1735308535
-SHA256 (blender-4.2.0.tar.xz) = 30515eafbac3301bf33af859945315d209cac4f8ee1dc0e312b4fbce50a85be2
-SIZE (blender-4.2.0.tar.xz) = 72767404
-SHA256 (1c69154aaf033730a9e3882574d56ca6597b84ae.patch) = 2f2e5052195b99b5473e8ebafd88ae626a7927f1f4da2a0f2be11a794253dbd5
-SIZE (1c69154aaf033730a9e3882574d56ca6597b84ae.patch) = 856
+TIMESTAMP = 1766460211
+SHA256 (blender-5.0.1.tar.xz) = 0077a41f59843433154fdf2d8aeb6c43f6bf6951cd46987305e67f89cb4f1fbf
+SIZE (blender-5.0.1.tar.xz) = 88926056
diff --git a/graphics/blender/files/extra-patch-simd-off b/graphics/blender/files/extra-patch-simd-off
index dfc68d8b0419..1a1172360911 100644
--- a/graphics/blender/files/extra-patch-simd-off
+++ b/graphics/blender/files/extra-patch-simd-off
@@ -35,3 +35,67 @@
  /* no SSE4.2 kernel on x86-64, part of regular kernel */
  #    ifdef WITH_KERNEL_AVX2
  #      define WITH_CYCLES_OPTIMIZED_KERNEL_AVX2
+--- source/blender/blenlib/BLI_bit_span_to_index_ranges.hh.orig	2025-12-24 21:09:10 UTC
++++ source/blender/blenlib/BLI_bit_span_to_index_ranges.hh
+@@ -111,7 +111,12 @@ inline void bits_to_index_ranges(const BitSpan bits, I
+       /* Loads the next 128 bit. */
+       const __m128i group = _mm_loadu_si128(reinterpret_cast<const __m128i *>(start + int_i));
+       /* Checks if all the 128 bits are zero. */
++#if BLI_HAVE_SSE4
+       const bool group_is_zero = _mm_testz_si128(group, group);
++#else
++      __m128i tmp = _mm_and_si128(group, group);
++      const bool group_is_zero = (_mm_movemask_epi8(tmp) == 0);
++#endif
+       if (group_is_zero) {
+         continue;
+       }
+--- source/blender/blenlib/intern/math_half.cc.orig	2025-12-24 21:19:17 UTC
++++ source/blender/blenlib/intern/math_half.cc
+@@ -271,6 +271,32 @@ void blender::math::float_to_half_array(const float *s
+   }
+ }
+ 
++#ifndef __SSE4_1__
++static inline __m128i srai_epi8_sse2(__m128i x, int imm)
++{
++    // Sign-extend bytes to 16-bit
++    __m128i sign = _mm_cmpgt_epi8(_mm_setzero_si128(), x); // 0xFF where x < 0
++    __m128i lo = _mm_unpacklo_epi8(x, sign);
++    __m128i hi = _mm_unpackhi_epi8(x, sign);
++
++    // Arithmetic shift right on 16-bit lanes
++    lo = _mm_srai_epi16(lo, imm);
++    hi = _mm_srai_epi16(hi, imm);
++
++    // Pack back to 8-bit (signed saturation)
++    return _mm_packs_epi16(lo, hi);
++}
++
++static inline __m128i blendv_epi8_sse2(__m128i a, __m128i b, __m128i mask)
++{
++    mask = srai_epi8_sse2(mask, 7);
++    return _mm_or_si128(
++        _mm_and_si128(mask, b),
++        _mm_andnot_si128(mask, a)
++    );
++}
++#endif
++
+ void blender::math::float_to_half_make_finite_array(const float *src, uint16_t *dst, size_t length)
+ {
+   size_t i = 0;
+@@ -320,8 +346,13 @@ void blender::math::float_to_half_make_finite_array(co
+       __m128i inf_res = _mm_or_si128(signbits, _mm_set1_epi16(0x7bffu)); /* +/- 65504 */
+       __m128i nan_res = signbits;                                        /* +/- 0 */
+       /* Select final result. */
++#if __SSE4_1__
+       h4 = _mm_blendv_epi8(h4, inf_res, is_inf);
+       h4 = _mm_blendv_epi8(h4, nan_res, is_nan);
++#else
++      h4 = blendv_epi8_sse2(h4, inf_res, is_inf);
++      h4 = blendv_epi8_sse2(h4, nan_res, is_nan);
++#endif
+       h4 = _mm_and_si128(h4, _mm_set1_epi32(0xffff));
+       h4 = _mm_or_si128(h4, hi_part);
+     }
diff --git a/graphics/blender/files/patch-CMakeLists.txt b/graphics/blender/files/patch-CMakeLists.txt
deleted file mode 100644
index d83d786ddb30..000000000000
--- a/graphics/blender/files/patch-CMakeLists.txt
+++ /dev/null
@@ -1,14 +0,0 @@
---- CMakeLists.txt.orig	2024-07-04 15:30:32 UTC
-+++ CMakeLists.txt
-@@ -1197,11 +1197,6 @@ set_and_warn_dependency(WITH_PYTHON WITH_MOD_FLUID    
- set_and_warn_dependency(WITH_PYTHON WITH_DRACO         OFF)
- set_and_warn_dependency(WITH_PYTHON WITH_MOD_FLUID     OFF)
- 
--if(WITH_DRACO AND NOT WITH_PYTHON_INSTALL)
--  message(STATUS "WITH_DRACO requires WITH_PYTHON_INSTALL to be ON, disabling WITH_DRACO for now")
--  set(WITH_DRACO OFF)
--endif()
--
- # enable boost for cycles, audaspace or i18n
- # otherwise if the user disabled
- 
diff --git a/graphics/blender/files/patch-extern_audaspace_plugins_ffmpeg_FFMPEGReader.cpp b/graphics/blender/files/patch-extern_audaspace_plugins_ffmpeg_FFMPEGReader.cpp
deleted file mode 100644
index 10a1cf924e53..000000000000
--- a/graphics/blender/files/patch-extern_audaspace_plugins_ffmpeg_FFMPEGReader.cpp
+++ /dev/null
@@ -1,71 +0,0 @@
---- extern/audaspace/plugins/ffmpeg/FFMPEGReader.cpp.orig	2024-08-18 04:20:22 UTC
-+++ extern/audaspace/plugins/ffmpeg/FFMPEGReader.cpp
-@@ -31,6 +31,10 @@ AUD_NAMESPACE_BEGIN
- #define FFMPEG_OLD_CODE
- #endif
- 
-+#if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(57, 28, 100)
-+#define HAVE_CH_LAYOUT
-+#endif
-+
- SampleFormat FFMPEGReader::convertSampleFormat(AVSampleFormat format)
- {
- 	switch(av_get_packed_sample_fmt(format))
-@@ -109,10 +113,16 @@ int FFMPEGReader::decode(AVPacket& packet, Buffer& buf
- 	{
- 		auto ret = avcodec_receive_frame(m_codecCtx, m_frame);
- 
-+#ifdef HAVE_CH_LAYOUT
-+		int nb_channels = m_codecCtx->ch_layout.nb_channels;
-+#else
-+		int nb_channels = m_codecCtx->channels;
-+#endif
-+
- 		if(ret != 0)
- 			break;
- 
--		int data_size = av_samples_get_buffer_size(nullptr, m_codecCtx->channels, m_frame->nb_samples, m_codecCtx->sample_fmt, 1);
-+		int data_size = av_samples_get_buffer_size(nullptr, nb_channels, m_frame->nb_samples, m_codecCtx->sample_fmt, 1);
- 
- 		if(buf_size - buf_pos < data_size)
- 		{
-@@ -122,12 +132,12 @@ int FFMPEGReader::decode(AVPacket& packet, Buffer& buf
- 
- 		if(m_tointerleave)
- 		{
--			int single_size = data_size / m_codecCtx->channels / m_frame->nb_samples;
--			for(int channel = 0; channel < m_codecCtx->channels; channel++)
-+			int single_size = data_size / nb_channels / m_frame->nb_samples;
-+			for(int channel = 0; channel < nb_channels; channel++)
- 			{
- 				for(int i = 0; i < m_frame->nb_samples; i++)
- 				{
--					std::memcpy(((data_t*)buffer.getBuffer()) + buf_pos + ((m_codecCtx->channels * i) + channel) * single_size,
-+					std::memcpy(((data_t*)buffer.getBuffer()) + buf_pos + ((nb_channels * i) + channel) * single_size,
- 						   m_frame->data[channel] + i * single_size, single_size);
- 				}
- 			}
-@@ -207,7 +217,11 @@ void FFMPEGReader::init(int stream)
- 	if(avcodec_open2(m_codecCtx, aCodec, nullptr) < 0)
- 		AUD_THROW(FileException, "File couldn't be read, ffmpeg codec couldn't be opened.");
- 
-+#ifdef HAVE_CH_LAYOUT
-+	m_specs.channels = (Channels) m_codecCtx->ch_layout.nb_channels;
-+#else
- 	m_specs.channels = (Channels) m_codecCtx->channels;
-+#endif
- 	m_tointerleave = av_sample_fmt_is_planar(m_codecCtx->sample_fmt);
- 
- 	switch(av_get_packed_sample_fmt(m_codecCtx->sample_fmt))
-@@ -345,7 +359,11 @@ std::vector<StreamInfo> FFMPEGReader::queryStreams()
- 			info.specs.rate = m_formatCtx->streams[i]->codec->sample_rate;
- 			info.specs.format = convertSampleFormat(m_formatCtx->streams[i]->codec->sample_fmt);
- #else
-+#ifdef HAVE_CH_LAYOUT
-+			info.specs.channels = Channels(m_formatCtx->streams[i]->codecpar->ch_layout.nb_channels);
-+#else
- 			info.specs.channels = Channels(m_formatCtx->streams[i]->codecpar->channels);
-+#endif
- 			info.specs.rate = m_formatCtx->streams[i]->codecpar->sample_rate;
- 			info.specs.format = convertSampleFormat(AVSampleFormat(m_formatCtx->streams[i]->codecpar->format));
- #endif
diff --git a/graphics/blender/files/patch-extern_audaspace_plugins_ffmpeg_FFMPEGWriter.cpp b/graphics/blender/files/patch-extern_audaspace_plugins_ffmpeg_FFMPEGWriter.cpp
deleted file mode 100644
index f93ef6df1417..000000000000
--- a/graphics/blender/files/patch-extern_audaspace_plugins_ffmpeg_FFMPEGWriter.cpp
+++ /dev/null
@@ -1,87 +0,0 @@
---- extern/audaspace/plugins/ffmpeg/FFMPEGWriter.cpp.orig	2024-08-18 04:25:16 UTC
-+++ extern/audaspace/plugins/ffmpeg/FFMPEGWriter.cpp
-@@ -34,6 +34,10 @@ AUD_NAMESPACE_BEGIN
- #define FFMPEG_OLD_CODE
- #endif
- 
-+#if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(57, 28, 100)
-+#define HAVE_CH_LAYOUT
-+#endif
-+
- void FFMPEGWriter::encode()
- {
- 	sample_t* data = m_input_buffer.getBuffer();
-@@ -77,8 +81,12 @@ void FFMPEGWriter::encode()
- 
- 	m_frame->nb_samples = m_input_samples;
- 	m_frame->format = m_codecCtx->sample_fmt;
-+#ifdef HAVE_CH_LAYOUT
-+	av_channel_layout_copy(&m_frame->ch_layout, &m_codecCtx->ch_layout);
-+#else
- 	m_frame->channel_layout = m_codecCtx->channel_layout;
- 	m_frame->channels = m_specs.channels;
-+#endif
- 
- 	if(avcodec_fill_audio_frame(m_frame, m_specs.channels, m_codecCtx->sample_fmt, reinterpret_cast<data_t*>(data), m_input_buffer.getSize(), 0) < 0)
- 		AUD_THROW(FileException, "File couldn't be written, filling the audio frame failed with ffmpeg.");
-@@ -237,6 +245,39 @@ FFMPEGWriter::FFMPEGWriter(const std::string &filename
- 		break;
- 	}
- 
-+#ifdef HAVE_CH_LAYOUT
-+	AVChannelLayout channel_layout{};
-+
-+	switch(m_specs.channels)
-+	{
-+	case CHANNELS_MONO:
-+		channel_layout = AV_CHANNEL_LAYOUT_MONO;
-+		break;
-+	case CHANNELS_STEREO:
-+		channel_layout = AV_CHANNEL_LAYOUT_STEREO;
-+		break;
-+	case CHANNELS_STEREO_LFE:
-+		channel_layout = AV_CHANNEL_LAYOUT_2POINT1;
-+		break;
-+	case CHANNELS_SURROUND4:
-+		channel_layout = AV_CHANNEL_LAYOUT_QUAD;
-+		break;
-+	case CHANNELS_SURROUND5:
-+		channel_layout = AV_CHANNEL_LAYOUT_5POINT0_BACK;
-+		break;
-+	case CHANNELS_SURROUND51:
-+		channel_layout = AV_CHANNEL_LAYOUT_5POINT1_BACK;
-+		break;
-+	case CHANNELS_SURROUND61:
-+		channel_layout = AV_CHANNEL_LAYOUT_6POINT1_BACK;
-+		break;
-+	case CHANNELS_SURROUND71:
-+		channel_layout = AV_CHANNEL_LAYOUT_7POINT1;
-+		break;
-+	default:
-+		AUD_THROW(FileException, "File couldn't be written, channel layout not supported.");
-+	}
-+#else
- 	uint64_t channel_layout = 0;
- 
- 	switch(m_specs.channels)
-@@ -268,6 +309,7 @@ FFMPEGWriter::FFMPEGWriter(const std::string &filename
- 	default:
- 		AUD_THROW(FileException, "File couldn't be written, channel layout not supported.");
- 	}
-+#endif
- 
- 	try
- 	{
-@@ -405,8 +447,12 @@ FFMPEGWriter::FFMPEGWriter(const std::string &filename
- 
- 		m_codecCtx->codec_type = AVMEDIA_TYPE_AUDIO;
- 		m_codecCtx->bit_rate = bitrate;
-+#ifdef HAVE_CH_LAYOUT
-+		av_channel_layout_copy(&m_codecCtx->ch_layout, &channel_layout);
-+#else
- 		m_codecCtx->channel_layout = channel_layout;
- 		m_codecCtx->channels = m_specs.channels;
-+#endif
- 		m_stream->time_base.num = m_codecCtx->time_base.num = 1;
- 		m_stream->time_base.den = m_codecCtx->time_base.den = m_codecCtx->sample_rate;
- 
diff --git a/graphics/blender/files/patch-fmtlib b/graphics/blender/files/patch-fmtlib
new file mode 100644
index 000000000000..feea56e6e58a
--- /dev/null
+++ b/graphics/blender/files/patch-fmtlib
@@ -0,0 +1,3256 @@
+--- extern/binreloc/CMakeLists.txt.orig	2025-10-08 10:41:55 UTC
++++ extern/binreloc/CMakeLists.txt
+@@ -7,7 +7,7 @@ set(INC_SYS
+ )
+ 
+ set(INC_SYS
+-
++  PUBLIC include
+ )
+ 
+ set(SRC
+@@ -23,3 +23,4 @@ blender_add_lib(extern_binreloc "${SRC}" "${INC}" "${I
+ 
+ 
+ blender_add_lib(extern_binreloc "${SRC}" "${INC}" "${INC_SYS}" "${LIB}")
++add_library(bf::extern::binreloc ALIAS extern_binreloc)
+--- extern/CMakeLists.txt.orig	2025-10-08 10:41:55 UTC
++++ extern/CMakeLists.txt
+@@ -4,7 +4,9 @@ add_subdirectory(curve_fit_nd)
+ 
+ # Libs that adhere to strict flags
+ add_subdirectory(curve_fit_nd)
++add_subdirectory(fast_float)
+ add_subdirectory(fmtlib)
++add_subdirectory(json)
+ if(WITH_IO_FBX)
+   add_subdirectory(ufbx)
+ endif()
+--- extern/fast_float/CMakeLists.txt.orig	2025-12-23 01:40:52 UTC
++++ extern/fast_float/CMakeLists.txt
+@@ -0,0 +1,7 @@
++# SPDX-FileCopyrightText: 2023 Blender Foundation
++#
++# SPDX-License-Identifier: GPL-2.0-or-later
++
++add_library(extern_fast_float INTERFACE)
++target_include_directories(extern_fast_float SYSTEM INTERFACE ".")
++add_library(bf::extern::fast_float ALIAS extern_fast_float)
+--- extern/json/CMakeLists.txt.orig	2025-12-23 01:40:52 UTC
++++ extern/json/CMakeLists.txt
+@@ -0,0 +1,7 @@
++# SPDX-FileCopyrightText: 2023 Blender Foundation
++#
++# SPDX-License-Identifier: GPL-2.0-or-later
++
++add_library(extern_json INTERFACE)
++target_include_directories(extern_json SYSTEM INTERFACE "include")
++add_library(bf::extern::json ALIAS extern_json)
+--- extern/mantaflow/CMakeLists.txt.orig	2025-10-08 10:41:55 UTC
++++ extern/mantaflow/CMakeLists.txt
+@@ -68,8 +68,6 @@ set(INC_SYS
+ endif()
+ 
+ set(INC_SYS
+-  ${PYTHON_INCLUDE_DIRS}
+-  ${ZLIB_INCLUDE_DIRS}
+ )
+ 
+ if(WITH_MANTA_NUMPY AND WITH_PYTHON_NUMPY)
+@@ -229,8 +227,8 @@ set(LIB
+ set(LIB
+   PRIVATE bf::dependencies::optional::openvdb
+   PRIVATE bf::dependencies::optional::tbb
+-  ${PYTHON_LINKFLAGS}
+-  ${PYTHON_LIBRARIES}
++  PRIVATE bf::dependencies::optional::python
++  PRIVATE bf::dependencies::zlib
+ )
+ 
+ blender_add_lib(extern_mantaflow "${SRC}" "${INC}" "${INC_SYS}" "${LIB}")
+--- extern/vulkan_memory_allocator/CMakeLists.txt.orig	2025-10-08 10:41:56 UTC
++++ extern/vulkan_memory_allocator/CMakeLists.txt
+@@ -3,7 +3,7 @@ set(INC
+ # SPDX-License-Identifier: GPL-2.0-or-later
+ 
+ set(INC
+-  .
++  PUBLIC .
+ )
+ 
+ set(INC_SYS
+@@ -20,6 +20,7 @@ blender_add_lib(extern_vulkan_memory_allocator "${SRC}
+ )
+ 
+ blender_add_lib(extern_vulkan_memory_allocator "${SRC}" "${INC}" "${INC_SYS}" "${LIB}")
++add_library(bf::extern::vulkan_memory_allocator ALIAS extern_vulkan_memory_allocator)
+ 
+ if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
+   target_compile_options(extern_vulkan_memory_allocator
+--- extern/wcwidth/CMakeLists.txt.orig	2025-10-08 10:41:56 UTC
++++ extern/wcwidth/CMakeLists.txt
+@@ -1,4 +1,4 @@
+-# SPDX-FileCopyrightText: 2013 Blender Foundation
++# SPDX-FileCopyrightText: 2023 Blender Foundation
+ #
+ # SPDX-License-Identifier: GPL-2.0-or-later
+ 
+@@ -7,7 +7,7 @@ set(INC_SYS
+ )
+ 
+ set(INC_SYS
+-
++  PUBLIC .
+ )
+ 
+ set(SRC
+@@ -20,3 +20,4 @@ blender_add_lib(extern_wcwidth "${SRC}" "${INC}" "${IN
+ )
+ 
+ blender_add_lib(extern_wcwidth "${SRC}" "${INC}" "${INC_SYS}" "${LIB}")
++add_library(bf::extern::wcwidth ALIAS extern_wcwidth)
+--- intern/cycles/app/CMakeLists.txt.orig	2025-10-08 10:41:56 UTC
++++ intern/cycles/app/CMakeLists.txt
+@@ -35,10 +35,12 @@ if(WITH_CYCLES_STANDALONE AND WITH_CYCLES_STANDALONE_G
+ 
+ if(WITH_CYCLES_STANDALONE AND WITH_CYCLES_STANDALONE_GUI)
+   list(APPEND INC_SYS
+-    ${Epoxy_INCLUDE_DIRS}
+     ${SDL2_INCLUDE_DIRS}
+   )
+-  list(APPEND LIB ${Epoxy_LIBRARIES} ${SDL2_LIBRARIES})
++  list(APPEND LIB
++    bf::dependencies::optional::epoxy
++    ${SDL2_LIBRARIES}
++  )
+ endif()
+ 
+ if(WITH_USD)
+@@ -47,13 +49,9 @@ if(WITH_USD)
+     -D__TBB_show_deprecation_message_atomic_H
+     -D__TBB_show_deprecation_message_task_H
+   )
+-
+-  list(APPEND INC_SYS
+-    ${USD_INCLUDE_DIRS}
+-  )
+   list(APPEND LIB
+     cycles_hydra
+-    ${USD_LIBRARIES}
++    bf::dependencies::optional::usd
+   )
+ endif()
+ 
+--- intern/cycles/blender/CMakeLists.txt.orig	2025-10-08 10:41:56 UTC
++++ intern/cycles/blender/CMakeLists.txt
+@@ -9,8 +9,6 @@ set(INC_SYS
+ )
+ 
+ set(INC_SYS
+-  ${Epoxy_INCLUDE_DIRS}
+-  ${PYTHON_INCLUDE_DIRS}
+ )
+ 
+ set(SRC
+@@ -70,9 +68,10 @@ set(LIB
+   cycles_subd
+   cycles_util
+ 
+-  ${Epoxy_LIBRARIES}
+-  ${PYTHON_LINKFLAGS}
+-  ${PYTHON_LIBRARIES}
++  bf::dependencies::optional::epoxy
++  bf::dependencies::optional::python
++  bf::dependencies::optional::openimagedenoise
++  bf::dependencies::optional::openvdb
+ )
+ 
+ set(ADDON_FILES
+@@ -101,22 +100,6 @@ if(WITH_TBB)
+ 
+ if(WITH_TBB)
+   add_definitions(-DWITH_TBB)
+-endif()
+-
+-if(WITH_OPENVDB)
+-  list(APPEND INC
+-    ../../openvdb
+-  )
+-  list(APPEND LIB
+-    ${OPENVDB_LIBRARIES}
+-  )
+-endif()
+-
+-if(WITH_OPENIMAGEDENOISE)
+-  add_definitions(-DWITH_OPENIMAGEDENOISE)
+-  list(APPEND INC_SYS
+-    ${OPENIMAGEDENOISE_INCLUDE_DIRS}
+-  )
+ endif()
+ 
+ if(WITH_CYCLES_OSL)
+--- intern/cycles/device/CMakeLists.txt.orig	2025-10-08 10:41:56 UTC
++++ intern/cycles/device/CMakeLists.txt
+@@ -6,7 +6,8 @@ set(INC
+   ..
*** 6387 LINES SKIPPED ***


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?699084ed.466bf.432e91d5>