git: 4436c206592c - main - graphics/blender: Revert "update to v5.1.0"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 17 Jun 2026 11:25:29 UTC
The branch main has been updated by fuz:
URL: https://cgit.FreeBSD.org/ports/commit/?id=4436c206592c100a82f010c2c3249a3f389fc98f
commit 4436c206592c100a82f010c2c3249a3f389fc98f
Author: Robert Clausecker <fuz@FreeBSD.org>
AuthorDate: 2026-06-17 11:16:58 +0000
Commit: Robert Clausecker <fuz@FreeBSD.org>
CommitDate: 2026-06-17 11:23:56 +0000
graphics/blender: Revert "update to v5.1.0"
Reverted due to reversal of the devel/meson change.
PR: 294160
This reverts commit 1886d7dda7e31db1a0592c7280c12843bc14fd32.
---
graphics/blender/Makefile | 24 +-
graphics/blender/Makefile.versions | 4 +-
graphics/blender/distinfo | 6 +-
graphics/blender/files/extra-patch-simd-off | 45 +-
graphics/blender/files/patch-CMakeLists.txt | 11 +
graphics/blender/files/patch-fmtlib | 3256 ++++++++++++++++++++
.../files/patch-intern_cycles_CMakeLists.txt | 12 +-
.../files/patch-intern_dualcon_intern_octree.cpp | 14 -
...n_libmv_libmv_multiview_euclidean__resection.cc | 42 -
...ch-intern_libmv_libmv_tracking_track__region.cc | 14 -
...ch-source_blender_blenfont_intern_blf__glyph.cc | 14 +
...tch-source_blender_blenlib_intern_math__half.cc | 11 +
graphics/blender/pkg-plist | 56 +-
13 files changed, 3343 insertions(+), 166 deletions(-)
diff --git a/graphics/blender/Makefile b/graphics/blender/Makefile
index 68a45952c2c0..8cfc1f5b05de 100644
--- a/graphics/blender/Makefile
+++ b/graphics/blender/Makefile
@@ -1,6 +1,6 @@
PORTNAME= blender
-DISTVERSION= 5.1.0
-PORTREVISION= 0
+DISTVERSION= 5.0.1
+PORTEPOCH= 1
CATEGORIES= graphics multimedia
MASTER_SITES= http://download.blender.org/source/ \
http://mirror.cs.umn.edu/blender.org/source/ \
@@ -16,14 +16,10 @@ LICENSE_FILE= ${WRKSRC}/doc/license/GPL3-license.txt
ONLY_FOR_ARCHS= aarch64 amd64 powerpc64le riscv64
ONLY_FOR_ARCHS_REASON= static_assert(sizeof(unsigned long long) == sizeof(struct hipArray*))
-BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}numpy>=1.16:math/py-numpy@${PY_FLAVOR} \
- ${${ARCH}_BUILD_DEPENDS}
-aarch64_BUILD_DEPENDS= ${LOCALBASE}/include/sse2neon.h:devel/sse2neon
-
-LIB_DEPENDS= libOpenImageIO.so:graphics/openimageio \
- libceres.so:math/ceres-solver \
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}numpy>=1.16:math/py-numpy@${PY_FLAVOR}
+LIB_DEPENDS= libfreetype.so:print/freetype2 \
libepoxy.so:graphics/libepoxy \
- libfreetype.so:print/freetype2 \
+ libOpenImageIO.so:graphics/openimageio \
libpng.so:graphics/png \
libsamplerate.so:audio/libsamplerate \
libtiff.so:graphics/tiff \
@@ -31,17 +27,14 @@ LIB_DEPENDS= libOpenImageIO.so:graphics/openimageio \
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}numpy>=1.16:math/py-numpy@${PY_FLAVOR}
USES= cmake:noninja compiler:c++17-lang cpe eigen:3 jpeg llvm:build,run \
- pkgconfig python:3.13 shebangfix tar:xz xorg
+ pkgconfig python shebangfix tar:xz xorg
USE_XORG= x11 xext xfixes xmu xrender
SHEBANG_FILES= scripts/modules/blend_render_info.py
CMAKE_ARGS= -DCMAKE_CXX_STANDARD:INTEGER=17 \
-DLLVM_CONFIG:STRING="${LOCALBASE}/bin/llvm-config${LLVM_VERSION}" \
- -DCMAKE_POLICY_DEFAULT_CMP0167=NEW \
- -DPYTHON_NUMPY_INCLUDE_DIRS:STRING="${PYTHON_SITELIBDIR}/numpy/_core/include" \
- -DPYTHON_NUMPY_PATH:STRING="${PYTHON_SITELIBDIR}/numpy/_core/include"
-# if PYTHON_NUMPY_PATH is an empty string PYTHON_NUMPY_INCLUDE_DIRS gets overwritten
+ -DCMAKE_POLICY_DEFAULT_CMP0167=NEW
.if defined(WITH_DEBUG)
CMAKE_ARGS+= -DWITH_GHOST_DEBUG:BOOL=ON
.endif
@@ -116,7 +109,8 @@ MATERIALX_CMAKE_BOOL= WITH_MATERIALX
MATERIALX_CMAKE_ON= -DMaterialX_DIR:STRING=${LOCALBASE}/lib/cmake/MaterialX \
-DMATERIALX_STDLIB_DIR:STRING=${LOCALBASE}/share/materialx \
-DMATERIALX_PYTHON_DIR:STRING=${PYTHON_SITELIBDIR}/MaterialX
-MATERIALX_LIB_DEPENDS= libMaterialXCore.so:graphics/materialx
+MATERIALX_LIB_DEPENDS= libMaterialXCore.so:graphics/materialx \
+ libMaterialXFormat.so:graphics/materialx
MENU_USES= desktop-file-utils
MOD_FLUID_CMAKE_BOOL= WITH_MOD_FLUID
MOD_FLUID_IMPLIES= TBB
diff --git a/graphics/blender/Makefile.versions b/graphics/blender/Makefile.versions
index 7612524ea1b8..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= 5.1.0
-BLENDER_PY_VERSION= 3.13
+BLENDER_BL_VERSION= 5.0.1
+BLENDER_PY_VERSION= 3.11
diff --git a/graphics/blender/distinfo b/graphics/blender/distinfo
index 0b756bf6dedd..1d85359cbb39 100644
--- a/graphics/blender/distinfo
+++ b/graphics/blender/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1774600862
-SHA256 (blender-5.1.0.tar.xz) = 765f42babd7ede459e8f16dee354d945b265454358d9a9f676913e0f3741e8ed
-SIZE (blender-5.1.0.tar.xz) = 90611172
+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 aeea1c6a8e0e..1a1172360911 100644
--- a/graphics/blender/files/extra-patch-simd-off
+++ b/graphics/blender/files/extra-patch-simd-off
@@ -1,19 +1,17 @@
---- build_files/cmake/macros.cmake.orig 2026-02-09 15:45:57 UTC
+--- build_files/cmake/macros.cmake.orig 2024-06-05 11:47:55 UTC
+++ build_files/cmake/macros.cmake
-@@ -575,7 +575,7 @@ macro(get_sse_flags
- if (CMAKE_SYSTEM_PROCESSOR MATCHES "(x86_64)|(AMD64)" OR CMAKE_OSX_ARCHITECTURES MATCHES x86_64)
- # message(STATUS "Detecting SSE support")
- if((CMAKE_C_COMPILER_ID STREQUAL "GNU") OR (CMAKE_C_COMPILER_ID MATCHES "Clang"))
-- set(${_sse42_flags} "-march=x86-64-v2")
-+ #set(${_sse42_flags} "-march=x86-64-v2")
- elseif(MSVC)
- # MSVC has no specific compile flags for SSE42 (only for AVX).
- set(${_sse42_flags})
---- intern/cycles/kernel/device/cpu/kernel.cpp.orig 2026-02-09 15:45:57 UTC
+@@ -546,7 +546,7 @@ macro(TEST_SSE_SUPPORT
+
+ # message(STATUS "Detecting SSE support")
+ if(CMAKE_COMPILER_IS_GNUCC OR (CMAKE_C_COMPILER_ID MATCHES "Clang"))
+- set(${_sse42_flags} "-march=x86-64-v2")
++# set(${_sse42_flags} "-march=x86-64-v2")
+ elseif(MSVC)
+ # msvc has no specific build flags for SSE42, but when using intrinsics it will
+ # generate the right instructions.
+--- intern/cycles/kernel/device/cpu/kernel.cpp.orig 2024-06-05 11:47:56 UTC
+++ intern/cycles/kernel/device/cpu/kernel.cpp
-@@ -8,11 +8,13 @@
- * one with SSE4.2 intrinsics.
- */
+@@ -10,9 +10,11 @@
#if defined(__x86_64__) || defined(_M_X64)
+/*
# define __KERNEL_SSE__
@@ -25,22 +23,19 @@
#endif
/* When building kernel for native machine detect kernel features from the flags
---- intern/cycles/util/optimization.h.orig 2026-02-10 11:52:40 UTC
+--- intern/cycles/util/optimization.h.orig 2024-06-05 11:47:56 UTC
+++ intern/cycles/util/optimization.h
-@@ -19,10 +19,12 @@
+@@ -26,7 +26,9 @@
# elif defined(__x86_64__) || defined(_M_X64)
/* SSE4.2 is our minimum requirement for x86-64 CPUs, so auto enable */
+/*
- # define __KERNEL_SSE__
- # define __KERNEL_SSE2__
- # define __KERNEL_SSE3__
# define __KERNEL_SSE42__
+*/
/* 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 2026-02-09 15:45:58 UTC
+--- 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. */
@@ -55,13 +50,13 @@
if (group_is_zero) {
continue;
}
---- source/blender/blenlib/intern/math_half.cc.orig 2026-02-09 15:45:58 UTC
+--- source/blender/blenlib/intern/math_half.cc.orig 2025-12-24 21:19:17 UTC
+++ source/blender/blenlib/intern/math_half.cc
-@@ -274,6 +274,32 @@ void math::float_to_half_array(const float *src, uint1
+@@ -271,6 +271,32 @@ void blender::math::float_to_half_array(const float *s
}
}
-+#if !defined(__SSE4_1__) && (defined(__x86_64__) || defined(_M_X64))
++#ifndef __SSE4_1__
+static inline __m128i srai_epi8_sse2(__m128i x, int imm)
+{
+ // Sign-extend bytes to 16-bit
@@ -87,10 +82,10 @@
+}
+#endif
+
- void math::float_to_half_make_finite_array(const float *src, uint16_t *dst, size_t length)
+ void blender::math::float_to_half_make_finite_array(const float *src, uint16_t *dst, size_t length)
{
size_t i = 0;
-@@ -323,8 +349,13 @@ void math::float_to_half_make_finite_array(const float
+@@ -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. */
diff --git a/graphics/blender/files/patch-CMakeLists.txt b/graphics/blender/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..024e7fd3fba4
--- /dev/null
+++ b/graphics/blender/files/patch-CMakeLists.txt
@@ -0,0 +1,11 @@
+--- CMakeLists.txt.orig 2025-10-09 16:52:29 UTC
++++ CMakeLists.txt
+@@ -2593,7 +2593,7 @@ if(WITH_PYTHON)
+ if(("${PYTHON_NUMPY_PATH}" STREQUAL "") OR (${PYTHON_NUMPY_PATH} MATCHES NOTFOUND))
+ set(_numpy_include "_core/include")
+ if(PYTHON_VERSION VERSION_LESS "3.13")
+- set(_numpy_include "core/include")
++# set(_numpy_include "core/include")
+ endif()
+ find_python_package(numpy "${_numpy_include}")
+ unset(_numpy_include)
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
+ ..
+ )
+
+-set(INC_SYS )
++set(INC_SYS
++)
+
+ if(WITH_CYCLES_DEVICE_OPTIX OR WITH_CYCLES_DEVICE_CUDA)
+ if(NOT WITH_CUDA_DYNLOAD)
+--- intern/cycles/hydra/CMakeLists.txt.orig 2025-10-08 10:41:56 UTC
++++ intern/cycles/hydra/CMakeLists.txt
+@@ -10,16 +10,13 @@ set(INC_SYS
+ ..
+ )
+ set(INC_SYS
+- ${USD_INCLUDE_DIRS}
+- ${Epoxy_INCLUDE_DIRS}
+- ${PYTHON_INCLUDE_DIRS}
+ )
+
+ set(LIB
+ cycles_scene
+ cycles_session
+ cycles_graph
+- ${Epoxy_LIBRARIES}
++ bf::dependencies::optional::epoxy
+ ${BOOST_PYTHON_LIBRARIES}
+ )
+ cycles_external_libraries_append(LIB)
+@@ -105,7 +102,8 @@ target_link_libraries(cycles_hydra
+
+ target_link_libraries(cycles_hydra
+ PUBLIC
+- ${USD_LIBRARIES}
++ bf::dependencies::optional::usd
++ bf::dependencies::optional::python
+ PRIVATE
+ ${LIB}
+ )
+--- intern/cycles/kernel/CMakeLists.txt.orig 2025-10-27 12:26:33 UTC
++++ intern/cycles/kernel/CMakeLists.txt
+@@ -439,12 +439,9 @@ add_executable(zstd_compress ../cmake/zstd_compress.cp
+
+ # `Zstd` compressor for kernels.
+ add_executable(zstd_compress ../cmake/zstd_compress.cpp)
+-target_include_directories(zstd_compress SYSTEM PRIVATE ${ZSTD_INCLUDE_DIRS})
+
+-target_link_libraries(zstd_compress ${ZSTD_LIBRARIES})
+-if(DEFINED PTHREADS_LIBRARIES)
+- target_link_libraries(zstd_compress ${PTHREADS_LIBRARIES})
+-endif()
++target_link_libraries(zstd_compress PRIVATE bf::dependencies::zstd)
++target_link_libraries(zstd_compress PRIVATE bf::dependencies::pthreads)
+
+ if(NOT WITH_BLENDER)
+ # For the Cycles standalone put libraries next to the Cycles application.
+--- intern/cycles/scene/CMakeLists.txt.orig 2025-10-08 10:41:56 UTC
++++ intern/cycles/scene/CMakeLists.txt
+@@ -112,11 +112,8 @@ if(WITH_OPENCOLORIO)
+
+ if(WITH_OPENCOLORIO)
+ add_definitions(-DWITH_OCIO)
+- list(APPEND INC_SYS
+- ${OPENCOLORIO_INCLUDE_DIRS}
+- )
+ list(APPEND LIB
+- ${OPENCOLORIO_LIBRARIES}
++ bf::dependencies::optional::opencolorio
+ )
+ if(WIN32 AND NOT USD_OVERRIDE_OPENCOLORIO)
+ add_definitions(-DOpenColorIO_SKIP_IMPORTS)
+@@ -125,7 +122,7 @@ if(WITH_OPENVDB)
+
+ if(WITH_OPENVDB)
+ list(APPEND LIB
+- ${OPENVDB_LIBRARIES}
++ bf::dependencies::optional::openvdb
+ )
+ endif()
+
+--- intern/cycles/test/CMakeLists.txt.orig 2025-10-08 10:41:56 UTC
++++ intern/cycles/test/CMakeLists.txt
+@@ -60,6 +60,6 @@ if(WITH_GTESTS)
+ endif()
+
+ if(WITH_GTESTS)
+- set(INC_SYS )
++ set(INC_SYS)
+ blender_add_test_suite_executable(cycles "${SRC}" "${INC}" "${INC_SYS}" "${LIB}")
+ endif()
+--- intern/ghost/CMakeLists.txt.orig 2025-10-08 10:41:56 UTC
++++ intern/ghost/CMakeLists.txt
+@@ -80,11 +80,8 @@ if(WITH_OPENGL_BACKEND)
+ endif()
+
+ if(WITH_OPENGL_BACKEND)
+- list(APPEND INC_SYS
+- ${Epoxy_INCLUDE_DIRS}
+- )
+ list(APPEND LIB
+- ${Epoxy_LIBRARIES}
++ bf::dependencies::optional::epoxy
+ )
+ add_definitions(-DWITH_OPENGL_BACKEND)
+ endif()
+@@ -95,15 +92,9 @@ if(WITH_VULKAN_BACKEND)
+
+ intern/GHOST_ContextVK.hh
+ )
+- list(APPEND INC
+- ../../extern/vulkan_memory_allocator/
+- )
+- list(APPEND INC_SYS
+- PUBLIC ${VULKAN_INCLUDE_DIRS}
+- )
+-
+ list(APPEND LIB
+- ${VULKAN_LIBRARIES}
++ PUBLIC bf::dependencies::optional::vulkan
++ bf::extern::vulkan_memory_allocator
+ )
+
+ add_definitions(-DWITH_VULKAN_BACKEND)
+@@ -160,11 +151,8 @@ elseif(WITH_GHOST_SDL)
+ )
+ add_definitions(-DWITH_GHOST_SDL)
+
+- list(APPEND INC_SYS
+- ${SDL_INCLUDE_DIR}
+- )
+ list(APPEND LIB
+- ${SDL_LIBRARY}
++ bf::dependencies::optional::sdl
+ )
+ elseif(APPLE AND NOT WITH_GHOST_X11)
+ list(APPEND SRC
+--- intern/guardedalloc/CMakeLists.txt.orig 2025-10-08 10:41:56 UTC
++++ intern/guardedalloc/CMakeLists.txt
+@@ -40,18 +40,8 @@ set(LIB
+
+ set(LIB
+ PRIVATE bf::intern::atomic
++ PRIVATE bf::dependencies::pthreads
+ )
+-
+-if(WIN32 AND NOT UNIX)
+- list(APPEND INC_SYS
+- ${PTHREADS_INC}
+- )
+- if(DEFINED PTHREADS_LIBRARIES)
+- list(APPEND LIB
+- ${PTHREADS_LIBRARIES}
+- )
+- endif()
+-endif()
+
+ if(WITH_MEM_JEMALLOC)
+ add_definitions(-DWITH_MEM_JEMALLOC)
+--- intern/libmv/CMakeLists.txt.orig 2025-10-08 10:41:56 UTC
++++ intern/libmv/CMakeLists.txt
+@@ -31,8 +31,6 @@ if(WITH_LIBMV)
+ if(WIN32)
+ add_definitions(-D_USE_MATH_DEFINES)
+ endif()
+- add_definitions(${GFLAGS_DEFINES})
+- add_definitions(${GLOG_DEFINES})
+ add_definitions(-DLIBMV_GFLAGS_NAMESPACE=${GFLAGS_NAMESPACE})
+
+ if(WITH_TBB)
+@@ -46,8 +44,6 @@ if(WITH_LIBMV)
+ list(APPEND INC_SYS
+ ${GFLAGS_INCLUDE_DIRS}
+ ${GLOG_INCLUDE_DIRS}
+- ${PNG_INCLUDE_DIRS}
+- ${ZLIB_INCLUDE_DIRS}
+ ../../extern/ceres/include
+ ../../extern/ceres/config
+ )
+@@ -55,12 +51,12 @@ if(WITH_LIBMV)
+ list(APPEND LIB
+ extern_ceres
+ PUBLIC bf::dependencies::optional::tbb
++ PRIVATE bf::dependencies::zlib
+
+- ${GLOG_LIBRARIES}
+- ${GFLAGS_LIBRARIES}
+- ${PNG_LIBRARIES}
+-
+ PRIVATE bf::dependencies::eigen
++ PRIVATE bf::dependencies::gflags
++ PRIVATE bf::dependencies::glog
++ PRIVATE bf::dependencies::png
+ )
+
+ add_definitions(
+--- intern/mantaflow/CMakeLists.txt.orig 2025-10-08 10:41:56 UTC
++++ intern/mantaflow/CMakeLists.txt
+@@ -34,8 +34,6 @@ set(INC_SYS
+ ../../extern/mantaflow/helper/util
+ ../../extern/mantaflow/helper/pwrapper
+ ../../extern/mantaflow/preprocessed
+- ${PYTHON_INCLUDE_DIRS}
+- ${ZLIB_INCLUDE_DIRS}
+ )
+
+ set(SRC
+@@ -58,10 +56,8 @@ set(LIB
+ PRIVATE bf::dependencies::optional::openvdb
+ PRIVATE bf::dependencies::optional::tbb
+ extern_mantaflow
+-
+- ${PYTHON_LINKFLAGS}
+- ${PYTHON_LIBRARIES}
+- ${ZLIB_LIBRARIES}
++ PRIVATE bf::dependencies::optional::python
++ PRIVATE bf::dependencies::zlib
+ )
+
+ blender_add_lib(bf_intern_mantaflow "${SRC}" "${INC}" "${INC_SYS}" "${LIB}")
+--- intern/opensubdiv/CMakeLists.txt.orig 2025-10-08 10:41:56 UTC
++++ intern/opensubdiv/CMakeLists.txt
+@@ -32,11 +32,6 @@ if(WITH_OPENSUBDIV)
+ endif()
+ endmacro()
+
+- list(APPEND INC_SYS
+- ${OPENSUBDIV_INCLUDE_DIRS}
+- ${Epoxy_INCLUDE_DIRS}
+- )
+-
+ list(APPEND SRC
+ # Base.
+ internal/base/memory.h
+@@ -76,8 +71,8 @@ if(WITH_OPENSUBDIV)
+ )
+
+ list(APPEND LIB
+- ${OPENSUBDIV_LIBRARIES}
+- ${Epoxy_LIBRARIES}
++ bf::dependencies::optional::opensubdiv
++ bf::dependencies::optional::epoxy
+ )
+
+ if(WIN32)
+@@ -137,9 +132,6 @@ if(WITH_GTESTS AND WITH_OPENSUBDIV)
+ # Tests.
+
+ if(WITH_GTESTS AND WITH_OPENSUBDIV)
+- add_definitions(${GFLAGS_DEFINES})
+- add_definitions(${GLOG_DEFINES})
+-
+ set(TEST_SRC
+ internal/topology/mesh_topology_test.cc
+ )
+--- source/blender/animrig/CMakeLists.txt.orig 2025-10-08 10:41:56 UTC
++++ source/blender/animrig/CMakeLists.txt
+@@ -13,7 +13,6 @@ set(INC_SYS
+ )
+
+ set(INC_SYS
+- ../../../extern/fmtlib/include
+ )
+
+ set(SRC
+@@ -62,6 +61,7 @@ set(LIB
+ )
+
+ set(LIB
++ PRIVATE bf::extern::fmtlib
+ PRIVATE bf::blenkernel
+ bf::blenlib
+ PRIVATE bf::blenloader
+--- source/blender/blendthumb/CMakeLists.txt.orig 2025-10-08 10:41:56 UTC
++++ source/blender/blendthumb/CMakeLists.txt
+@@ -103,7 +103,5 @@ elseif(UNIX)
+ setup_platform_linker_flags(blender-thumbnailer)
+ setup_platform_linker_libs(blender-thumbnailer)
+ target_link_libraries(blender-thumbnailer PRIVATE bf_blenlib bf_blenloader_core)
+- if(DEFINED PTHREADS_LIBRARIES)
+- target_link_libraries(blender-thumbnailer PRIVATE ${PTHREADS_LIBRARIES})
+- endif()
++ target_link_libraries(blender-thumbnailer PRIVATE bf::dependencies::pthreads)
+ endif()
+--- source/blender/blenfont/CMakeLists.txt.orig 2025-10-08 10:41:56 UTC
++++ source/blender/blenfont/CMakeLists.txt
+@@ -8,7 +8,6 @@ set(INC_SYS
+ )
+
+ set(INC_SYS
+- ${FREETYPE_INCLUDE_DIRS}
+ )
+
+ set(SRC
+@@ -33,7 +32,7 @@ set(LIB
+ PRIVATE bf::gpu
+ PRIVATE bf::imbuf
+ PRIVATE bf::intern::guardedalloc
+- ${FREETYPE_LIBRARIES} ${BROTLI_LIBRARIES}
++ PRIVATE bf::dependencies::freetype
+ )
+
+ if(WIN32)
+--- source/blender/blenkernel/CMakeLists.txt.orig 2025-10-15 13:26:30 UTC
++++ source/blender/blenkernel/CMakeLists.txt
+@@ -25,11 +25,6 @@ set(INC_SYS
+ )
+
+ set(INC_SYS
+- ${ZLIB_INCLUDE_DIRS}
+- ${ZSTD_INCLUDE_DIRS}
+-
+- # For `vfontdata_freetype.cc`.
+- ${FREETYPE_INCLUDE_DIRS}
+ )
+
+ set(SRC
+@@ -563,6 +558,7 @@ set(LIB
+ )
+
+ set(LIB
++ PRIVATE bf::extern::fmtlib
+ PRIVATE bf::animrig
+ PRIVATE bf::asset_system
+ PRIVATE bf::blenfont
+@@ -593,19 +589,19 @@ set(LIB
+ PRIVATE bf::sequencer
+ bf_shader_fx
+ bf_simulation
+- PRIVATE bf::extern::fmtlib
+ PRIVATE bf::extern::xxhash
+ PRIVATE bf::intern::atomic
+- # For `vfontdata_freetype.c`.
+- ${FREETYPE_LIBRARIES} ${BROTLI_LIBRARIES}
++ PRIVATE bf::dependencies::zlib
++ PRIVATE bf::dependencies::zstd
++ PRIVATE bf::dependencies::freetype # For `vfontdata_freetype.c`.
++ PRIVATE bf::dependencies::optional::fftw3
++ PRIVATE bf::dependencies::optional::opensubdiv
++ PRIVATE bf::dependencies::optional::audaspace
+ )
+
+ if(WITH_BINRELOC)
+- list(APPEND INC_SYS
+- ${BINRELOC_INCLUDE_DIRS}
+- )
+ list(APPEND LIB
+- extern_binreloc
++ bf::extern::binreloc
+ )
+ add_definitions(-DWITH_BINRELOC)
+ endif()
+@@ -618,35 +614,19 @@ if(WITH_AUDASPACE)
+ endif()
+
+ if(WITH_AUDASPACE)
+- list(APPEND INC_SYS
+- ${AUDASPACE_C_INCLUDE_DIRS}
+- )
+- if(WITH_SYSTEM_AUDASPACE)
+- list(APPEND LIB
+- ${AUDASPACE_C_LIBRARIES}
+- ${AUDASPACE_PY_LIBRARIES}
+- )
+- endif()
+- add_definitions(-DWITH_AUDASPACE)
+-
+ if(WITH_RUBBERBAND)
+ add_definitions(-DWITH_RUBBERBAND)
+ endif()
+ endif()
+
+ if(WITH_BULLET)
+- list(APPEND INC_SYS
+- ${BULLET_INCLUDE_DIRS}
+- )
+ list(APPEND INC
+ ../../../intern/rigidbody
+ )
+ list(APPEND LIB
+ bf_intern_rigidbody
+-
+- ${BULLET_LIBRARIES}
++ bf::dependencies::optional::bullet
+ )
+- add_definitions(-DWITH_BULLET)
+ endif()
+
+ if(WITH_IMAGE_OPENEXR)
+@@ -718,16 +698,6 @@ endif()
+ add_definitions(-DWITH_LIBMV)
+ endif()
+
+-if(WITH_FFTW3)
+- list(APPEND INC_SYS
+- ${FFTW3_INCLUDE_DIRS}
+- )
+- list(APPEND LIB
+- ${FFTW3_LIBRARIES}
+- )
+- add_definitions(-DFFTW3=1)
+-endif()
+-
+ if(WITH_FREESTYLE)
+ add_definitions(-DWITH_FREESTYLE)
+ endif()
+@@ -744,16 +714,6 @@ if(WITH_USD)
+ ../io/usd
+ )
+ add_definitions(-DWITH_USD)
+-endif()
+-
+-if(WITH_OPENSUBDIV)
+- list(APPEND INC_SYS
+- ${OPENSUBDIV_INCLUDE_DIRS}
+- )
+- list(APPEND LIB
+- ${OPENSUBDIV_LIBRARIES}
+- )
+- add_definitions(-DWITH_OPENSUBDIV)
+ endif()
+
+ if(WITH_QUADRIFLOW)
+--- source/blender/blenlib/CMakeLists.txt.orig 2025-10-08 10:41:56 UTC
++++ source/blender/blenlib/CMakeLists.txt
+@@ -12,11 +12,6 @@ set(INC_SYS
+ )
+
+ set(INC_SYS
+- ../../../extern/wcwidth
+- ../../../extern/json/include
+-
+- ${ZLIB_INCLUDE_DIRS}
+- ${ZSTD_INCLUDE_DIRS}
+ )
+
+ set(SRC
+@@ -424,16 +419,19 @@ set(LIB
+ set(LIB
+ PUBLIC bf::dna
+ PRIVATE bf::extern::fmtlib
++ PRIVATE bf::extern::json
+ PRIVATE bf::extern::xxhash
+ bf_intern_eigen
+ PRIVATE bf::intern::guardedalloc
+- extern_wcwidth
++ PRIVATE bf::extern::wcwidth
+ PRIVATE bf::intern::atomic
+- PRIVATE extern_fmtlib
+- PUBLIC bf::dependencies::optional::tbb
++ PRIVATE bf::extern::fmtlib
+ PRIVATE bf::dependencies::eigen
+- ${ZLIB_LIBRARIES}
+- ${ZSTD_LIBRARIES}
++ PUBLIC bf::dependencies::optional::tbb
++ PRIVATE bf::dependencies::zlib
++ PRIVATE bf::dependencies::zstd
++ PRIVATE bf::dependencies::optional::gmp
++ PRIVATE bf::dependencies::optional::fftw3
+ )
+
+ if(NOT WITH_PYTHON_MODULE)
+@@ -446,28 +444,6 @@ if(WITH_MEM_VALGRIND)
+
+ if(WITH_MEM_VALGRIND)
+ add_definitions(-DWITH_MEM_VALGRIND)
+-endif()
+-
+-if(WITH_GMP)
+- add_definitions(-DWITH_GMP)
+-
+- list(APPEND INC_SYS
+- ${GMP_INCLUDE_DIRS}
+- )
+-
+- list(APPEND LIB
+- ${GMP_LIBRARIES}
+- )
+-endif()
+-
+-if(WITH_FFTW3)
+- list(APPEND INC_SYS
+- ${FFTW3_INCLUDE_DIRS}
+- )
+- list(APPEND LIB
+- ${FFTW3_LIBRARIES}
+- )
+- add_definitions(-DWITH_FFTW3)
+ endif()
+
+ if(WIN32)
+--- source/blender/blenloader/CMakeLists.txt.orig 2025-10-08 10:42:36 UTC
++++ source/blender/blenloader/CMakeLists.txt
+@@ -12,7 +12,6 @@ set(INC_SYS
+ )
+
+ set(INC_SYS
+- ${ZSTD_INCLUDE_DIRS}
+ )
+
+ set(SRC
+@@ -55,6 +54,7 @@ set(LIB
+ set(LIB
+ PRIVATE bf::animrig
+ PRIVATE bf::asset_system
++ PRIVATE bf::extern::fmtlib
+ PRIVATE bf::blenkernel
+ PRIVATE bf::blenlib
+ PUBLIC bf::blenloader_core
+@@ -68,13 +68,13 @@ set(LIB
+ PRIVATE bf::imbuf::movie
+ PRIVATE bf::intern::clog
+ PRIVATE bf::intern::guardedalloc
+- PRIVATE bf::extern::fmtlib
+ PRIVATE bf::intern::memutil
+ PRIVATE bf::nodes
+ PRIVATE bf::render
+ PRIVATE bf::sequencer
+ PRIVATE bf::windowmanager
+ PRIVATE bf::extern::xxhash
++ PRIVATE bf::dependencies::zstd
+ )
+
+ if(WITH_BUILDINFO)
+@@ -115,14 +115,14 @@ if(WITH_GTESTS)
+ )
+ set(TEST_UTIL_INC_SYS
+ ${INC_SYS}
+- ${GFLAGS_INCLUDE_DIRS}
+- ${GLOG_INCLUDE_DIRS}
+ ${CMAKE_SOURCE_DIR}/extern/gtest/include
+ )
+ set(TEST_UTIL_LIB
+ ${LIB}
+ PRIVATE bf::blenfont
+ bf_blenloader
++ PRIVATE bf::dependencies::gflags
++ PRIVATE bf::dependencies::glog
+ )
+ blender_add_lib(bf_blenloader_test_util "${TEST_UTIL_SRC}" "${TEST_UTIL_INC}" "${TEST_UTIL_INC_SYS}" "${TEST_UTIL_LIB}")
+
+--- source/blender/blentranslation/msgfmt/CMakeLists.txt.orig 2025-10-08 10:41:56 UTC
++++ source/blender/blentranslation/msgfmt/CMakeLists.txt
+@@ -20,7 +20,7 @@ set(LIB
+ set(LIB
+ PRIVATE PRIVATE bf::blenlib
+ PRIVATE bf::intern::guardedalloc
+- ${ZLIB_LIBRARIES}
++ PRIVATE bf::dependencies::zlib
+ ${PLATFORM_LINKLIBS})
+
+ add_cc_flags_custom_test(msgfmt)
+--- source/blender/bmesh/CMakeLists.txt.orig 2025-10-08 10:41:56 UTC
++++ source/blender/bmesh/CMakeLists.txt
+@@ -9,7 +9,6 @@ set(INC_SYS
+ )
+
+ set(INC_SYS
+-
+ )
+
+ set(SRC
+@@ -173,35 +172,21 @@ set(LIB
*** 2834 LINES SKIPPED ***