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>
