[Bf-blender-cvs] [388bbc32902] master: Build: library updates for Blender 3.5

Ray Molenkamp noreply at git.blender.org
Wed Dec 7 15:28:40 CET 2022


Commit: 388bbc32902d5a66ccc13955b810cef12213aeca
Author: Ray Molenkamp
Date:   Mon Dec 5 23:18:54 2022 +0100
Branches: master
https://developer.blender.org/rB388bbc32902d5a66ccc13955b810cef12213aeca

Build: library updates for Blender 3.5

This updates the libraries dependencies for VFX platform 2023, and adds various
new libraries. It also enables Python bindings and switches from static to
shared for various libraries.

The precompiled libraries for all platforms will be updated to these new
versions in the coming weeks.

New:

Fribidi 1.0.12
Harfbuzz 5.1.0
MaterialX 1.38.6 (shared lib with python bindings)
Minizipng 3.0.7
Pybind11 2.10.1
Shaderc 2022.3
Vulkan 1.2.198

Updated:

Boost 1.8.0 (shared lib)
Cython 0.29.30
Numpy 1.23.2
OpenColorIO 2.2.0 (shared lib with python bindings)
OpenImageIO 2.4.6.0 (shared lib with python bindings)
OpenSubdiv 3.5.0
OpenVDB 10.0.0 (shared lib with python bindings)
OSL 1.12.7.1 (enable nvptx backend)
TBB (shared lib)
USD 22.11 (shared lib with python bindings, enable hydra)
yaml-cpp 0.8.0

Includes contributions by Ray Molenkamp, Brecht Van Lommel, Georgiy Markelov
and Campbell Barton.

Ref T99618

===================================================================

M	CMakeLists.txt
M	build_files/build_environment/CMakeLists.txt
M	build_files/build_environment/cmake/alembic.cmake
M	build_files/build_environment/cmake/blosc.cmake
M	build_files/build_environment/cmake/boost.cmake
M	build_files/build_environment/cmake/boost_build_options.cmake
M	build_files/build_environment/cmake/check_software.cmake
M	build_files/build_environment/cmake/download.cmake
M	build_files/build_environment/cmake/dpcpp.cmake
M	build_files/build_environment/cmake/epoxy.cmake
M	build_files/build_environment/cmake/fmt.cmake
M	build_files/build_environment/cmake/freetype.cmake
A	build_files/build_environment/cmake/fribidi.cmake
A	build_files/build_environment/cmake/harfbuzz.cmake
M	build_files/build_environment/cmake/harvest.cmake
M	build_files/build_environment/cmake/imath.cmake
M	build_files/build_environment/cmake/llvm.cmake
A	build_files/build_environment/cmake/materialx.cmake
M	build_files/build_environment/cmake/mesa.cmake
A	build_files/build_environment/cmake/minizipng.cmake
M	build_files/build_environment/cmake/opencollada.cmake
M	build_files/build_environment/cmake/opencolorio.cmake
M	build_files/build_environment/cmake/openexr.cmake
M	build_files/build_environment/cmake/openimageio.cmake
M	build_files/build_environment/cmake/opensubdiv.cmake
M	build_files/build_environment/cmake/openvdb.cmake
M	build_files/build_environment/cmake/options.cmake
M	build_files/build_environment/cmake/opus.cmake
M	build_files/build_environment/cmake/osl.cmake
A	build_files/build_environment/cmake/pybind11.cmake
M	build_files/build_environment/cmake/python.cmake
M	build_files/build_environment/cmake/python_site_packages.cmake
A	build_files/build_environment/cmake/shaderc.cmake
A	build_files/build_environment/cmake/shaderc_deps.cmake
M	build_files/build_environment/cmake/sndfile.cmake
M	build_files/build_environment/cmake/ssl.cmake
M	build_files/build_environment/cmake/tbb.cmake
M	build_files/build_environment/cmake/usd.cmake
M	build_files/build_environment/cmake/versions.cmake
A	build_files/build_environment/cmake/vulkan.cmake
M	build_files/build_environment/cmake/wayland.cmake
M	build_files/build_environment/cmake/wayland_protocols.cmake
M	build_files/build_environment/cmake/yamlcpp.cmake
A	build_files/build_environment/darwin/set_rpath.py
M	build_files/build_environment/install_deps.sh
M	build_files/build_environment/patches/boost.user.jam.in
A	build_files/build_environment/patches/materialx.diff
M	build_files/build_environment/patches/opencollada.diff
M	build_files/build_environment/patches/openimageio.diff
M	build_files/build_environment/patches/openvdb.diff
M	build_files/build_environment/patches/osl.diff
A	build_files/build_environment/patches/python_windows.diff
M	build_files/build_environment/patches/usd.diff
M	build_files/build_environment/windows/build_deps.cmd
M	build_files/cmake/Modules/FindOpenColorIO.cmake
M	build_files/cmake/config/blender_full.cmake
M	build_files/cmake/config/blender_lite.cmake
M	build_files/cmake/config/blender_release.cmake
M	build_files/cmake/platform/platform_apple.cmake
M	build_files/cmake/platform/platform_old_libs_update.cmake
M	build_files/cmake/platform/platform_unix.cmake
M	build_files/cmake/platform/platform_win32.cmake
M	extern/mantaflow/helper/util/vectorbase.h
M	intern/cycles/cmake/macros.cmake
M	intern/ffmpeg/CMakeLists.txt
M	intern/locale/CMakeLists.txt
A	release/scripts/site/sitecustomize.py
D	release/windows/manifest/Blender.CRT.MANIFEST.in
M	source/blender/imbuf/intern/openexr/CMakeLists.txt
M	source/creator/CMakeLists.txt

===================================================================

diff --git a/CMakeLists.txt b/CMakeLists.txt
index f2d190be6bb..4de2454cfd8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -330,6 +330,9 @@ option(WITH_ALEMBIC             "Enable Alembic Support" ON)
 # Universal Scene Description support
 option(WITH_USD                 "Enable Universal Scene Description (USD) Support" ON)
 
+# MaterialX
+option(WITH_MATERIALX           "Enable MaterialX Support" OFF)
+
 # 3D format support
 # Disable opencollada when we don't have precompiled libs
 option(WITH_OPENCOLLADA   "Enable OpenCollada Support (http://www.opencollada.org)" ON)
@@ -1920,6 +1923,7 @@ if(FIRST_RUN)
   info_cfg_option(WITH_QUADRIFLOW)
   info_cfg_option(WITH_TBB)
   info_cfg_option(WITH_USD)
+  info_cfg_option(WITH_MATERIALX)
   info_cfg_option(WITH_XR_OPENXR)
 
   info_cfg_text("Compiler Options:")
diff --git a/build_files/build_environment/CMakeLists.txt b/build_files/build_environment/CMakeLists.txt
index 999223603d5..f8a4d5d8c20 100644
--- a/build_files/build_environment/CMakeLists.txt
+++ b/build_files/build_environment/CMakeLists.txt
@@ -26,7 +26,9 @@
 
 project("BlenderDependencies")
 cmake_minimum_required(VERSION 3.5)
-
+if(POLICY CMP0135)
+  cmake_policy(SET CMP0135 NEW) # CMake 3.24+ Set the date/time for extracted files to time of extraction
+endif()
 include(ExternalProject)
 include(cmake/check_software.cmake)
 include(cmake/options.cmake)
@@ -42,7 +44,7 @@ if(ENABLE_MINGW64)
 else()
   set(mingw_LIBDIR ${LIBDIR})
 endif()
-
+include(cmake/ssl.cmake)
 include(cmake/zlib.cmake)
 include(cmake/zstd.cmake)
 include(cmake/openal.cmake)
@@ -66,18 +68,16 @@ endif()
 if(UNIX)
   include(cmake/nasm.cmake)
 endif()
-include(cmake/openimageio.cmake)
 include(cmake/tiff.cmake)
 if(WIN32)
   include(cmake/flexbison.cmake)
 elseif(UNIX AND NOT APPLE)
   include(cmake/flex.cmake)
 endif()
-include(cmake/osl.cmake)
 include(cmake/tbb.cmake)
-include(cmake/openvdb.cmake)
 include(cmake/python.cmake)
 include(cmake/llvm.cmake)
+include(cmake/osl.cmake)
 option(USE_PIP_NUMPY "Install NumPy using pip wheel instead of building from source" OFF)
 if(APPLE AND ("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64"))
   set(USE_PIP_NUMPY ON)
@@ -86,7 +86,10 @@ else()
 endif()
 include(cmake/python_site_packages.cmake)
 include(cmake/package_python.cmake)
+include(cmake/openimageio.cmake)
 include(cmake/usd.cmake)
+include(cmake/materialx.cmake)
+include(cmake/openvdb.cmake)
 include(cmake/potrace.cmake)
 include(cmake/haru.cmake)
 # Boost needs to be included after `python.cmake` due to the PYTHON_BINARY variable being needed.
@@ -100,6 +103,8 @@ include(cmake/fmt.cmake)
 include(cmake/robinmap.cmake)
 include(cmake/xml2.cmake)
 
+include(cmake/fribidi.cmake)
+include(cmake/harfbuzz.cmake)
 if(NOT APPLE)
   include(cmake/xr_openxr.cmake)
   if(NOT WIN32 OR BUILD_MODE STREQUAL Release)
@@ -117,6 +122,7 @@ endif()
 include(cmake/expat.cmake)
 include(cmake/pystring.cmake)
 include(cmake/yamlcpp.cmake)
+include(cmake/minizipng.cmake)
 include(cmake/opencolorio.cmake)
 
 if(BLENDER_PLATFORM_ARM)
@@ -164,7 +170,6 @@ if(UNIX)
   include(cmake/bzip2.cmake)
   include(cmake/ffi.cmake)
   include(cmake/lzma.cmake)
-  include(cmake/ssl.cmake)
   include(cmake/sqlite.cmake)
 endif()
 
@@ -176,6 +181,9 @@ if(UNIX AND NOT APPLE)
   include(cmake/wayland.cmake)
   include(cmake/wayland_libdecor.cmake)
 endif()
-
+include(cmake/shaderc_deps.cmake)
+include(cmake/shaderc.cmake)
+include(cmake/vulkan.cmake)
+include(cmake/pybind11.cmake)
 include(cmake/harvest.cmake)
 include(cmake/cve_check.cmake)
diff --git a/build_files/build_environment/cmake/alembic.cmake b/build_files/build_environment/cmake/alembic.cmake
index 8b049e9e206..7d253ff52b6 100644
--- a/build_files/build_environment/cmake/alembic.cmake
+++ b/build_files/build_environment/cmake/alembic.cmake
@@ -17,6 +17,7 @@ ExternalProject_Add(external_alembic
   URL file://${PACKAGE_DIR}/${ALEMBIC_FILE}
   DOWNLOAD_DIR ${DOWNLOAD_DIR}
   URL_HASH ${ALEMBIC_HASH_TYPE}=${ALEMBIC_HASH}
+  CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
   PREFIX ${BUILD_DIR}/alembic
   CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/alembic -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${ALEMBIC_EXTRA_ARGS}
   INSTALL_DIR ${LIBDIR}/alembic
@@ -41,6 +42,5 @@ endif()
 
 add_dependencies(
   external_alembic
-  external_openexr
   external_imath
 )
diff --git a/build_files/build_environment/cmake/blosc.cmake b/build_files/build_environment/cmake/blosc.cmake
index 7dfa8853a8a..72368808744 100644
--- a/build_files/build_environment/cmake/blosc.cmake
+++ b/build_files/build_environment/cmake/blosc.cmake
@@ -38,19 +38,3 @@ if(WIN32)
     external_pthreads
   )
 endif()
-
-if(WIN32)
-  if(BUILD_MODE STREQUAL Release)
-    ExternalProject_Add_Step(external_blosc after_install
-      COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/blosc/lib/libblosc.lib ${HARVEST_TARGET}/blosc/lib/libblosc.lib
-      COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/blosc/include/ ${HARVEST_TARGET}/blosc/include/
-      DEPENDEES install
-    )
-  endif()
-  if(BUILD_MODE STREQUAL Debug)
-    ExternalProject_Add_Step(external_blosc after_install
-      COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/blosc/lib/libblosc_d.lib ${HARVEST_TARGET}/blosc/lib/libblosc_d.lib
-      DEPENDEES install
-    )
-  endif()
-endif()
diff --git a/build_files/build_environment/cmake/boost.cmake b/build_files/build_environment/cmake/boost.cmake
index 57088e59cee..495b419e69c 100644
--- a/build_files/build_environment/cmake/boost.cmake
+++ b/build_files/build_environment/cmake/boost.cmake
@@ -3,8 +3,18 @@
 if(WIN32)
   set(BOOST_CONFIGURE_COMMAND bootstrap.bat)
   set(BOOST_BUILD_COMMAND b2)
-  set(BOOST_BUILD_OPTIONS runtime-link=shared )
-  set(BOOST_HARVEST_CMD   ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/boost/lib/ ${HARVEST_TARGET}/boost/lib/ )
+  set(BOOST_BUILD_OPTIONS runtime-link=shared)
+  if(BUILD_MODE STREQUAL Debug)
+    list(APPEND BOOST_BUILD_OPTIONS python-debugging=on variant=debug)
+    if(WITH_OPTIMIZED_DEBUG)
+      list(APPEND BOOST_BUILD_OPTIONS debug-symbols=off)
+    else()
+      list(APPEND BOOST_BUILD_OPTIONS debug-symbols=on)
+    endif()
+  else()
+    list(APPEND BOOST_BUILD_OPTIONS variant=release)
+  endif()
+  set(BOOST_HARVEST_CMD ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/boost/lib/ ${HARVEST_TARGET}/boost/lib/)
   if(BUILD_MODE STREQUAL Release)
     set(BOOST_HARVEST_CMD ${BOOST_HARVEST_CMD} && ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/boost/include/boost-${BOOST_VERSION_NODOTS_SHORT}/ ${HARVEST_TARGET}/boost/include/)
   endif()
@@ -22,19 +32,17 @@ else()
   set(BOOST_PATCH_COMMAND echo .)
 endif()
 
-if(WITH_BOOST_PYTHON)
-  set(JAM_FILE ${BUILD_DIR}/boost.user-config.jam)
-  configure_file(${PATCH_DIR}/boost.user.jam.in ${JAM_FILE})
+set(JAM_FILE ${BUILD_DIR}/boost.user-config.jam)
+configure_file(${PATCH_DIR}/boost.user.jam.in ${JAM_FILE})
+set(BOOST_PYTHON_OPTIONS
+  --with-python
+  --user-config=${JAM_FILE}
+)
+if(WIN32 AND BUILD_MODE STREQUAL Debug)
   set(BOOST_PYTHON_OPTIONS
-    --with-python
-    --user-config=${JAM_FILE}
+    ${BOOST_PYTHON_OPTIONS}
+    define=BOOST_DEBUG_PYTHON
   )
-  if(WIN32 AND BUILD_MODE STREQUAL Debug)
-    set(BOOST_PYTHON_OPTIONS
-      ${BOOST_PYTHON_OPTIONS}
-      define=BOOST_DEBUG_PYTHON
-    )
-  endif()
 endif()
 
 set(BOOST_OPTIONS
@@ -66,15 +74,13 @@ ExternalProject_Add(external_boost
   UPDATE_COMMAND  ""
   PATCH_COMMAND ${BOOST_PATCH_COMMAND}
   CONFIGURE_COMMAND ${BOOST_CONFIGURE_COMMAND}
-  BUILD_COMMAND ${BOOST_BUILD_COMMAND} ${BOOST_BUILD_OPTIONS} -j${MAKE_THREADS} architecture=${BOOST_ARCHITECTURE} address-model=${BOOST_ADDRESS_MODEL} link=static threading=multi ${BOOST_OPTIONS}    --prefix=${LIBDIR}/boost install
+  BUILD_COMMAND ${BOOST_BUILD_COMMAND} ${BOOST_BUILD_OPTIONS} -j${MAKE_THREADS} architecture=${BOOST_ARCHITECTURE} address-model=${BOOST_ADDRESS_MODEL} link=shared threading=multi ${BOOST_OPTIONS}    --prefix=${LIBDIR}/boost install
   BUILD_IN_SOURCE 1
   INSTALL_COMMAND "${BOOST_HARVEST_CMD}"
 )
 
-if(WITH_BOOST_PYTHON)
-  add_dependencies(
-    external_boost
-    external_python
-    external_numpy
-  )
-endif()
+add_dependencies(
+  external_boost
+  external_python
+  external_numpy
+)
diff --git a/build_files/build_environment/cmake/boost_build_options.cmake b/build_files/build_environment/cmake/boost_build_options.cmake
index cc471078fcd..096534752f4 100644
--- a/build_files/build_environment/cmake/boost_build_options.cmake
+++ b/build_files/build_environment/cmake/boost_build_options.cmake
@@ -20,11 +20,12 @@ endif()
 set(DEFAULT_BOOST_FLAGS
   -DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
   -DBoost_USE_MULTITHREADED=ON
-  -DBoost_USE_STATIC_LIBS=ON
+  -DBoost_USE_STATIC_LIBS=OFF
   -DBoost_USE_STATIC_RUNTIME=OFF
   -DBOOST_ROOT=${LIBDIR}/boost
   -DBoost_NO_SYSTEM_PATHS=ON
   -DBoost_NO_BOOST_CMAKE=ON
   -DBoost_ADDITIONAL_VERSIONS=${BOOST_VERSION_SHORT}
   -DBOOST_LIBRARYDIR=${LIBDIR}/boost/lib/
+  -DBoost_USE_DEBUG_PYTHON=On
 )
diff --git a/build_files/build_environment/cmake/check_software.cmake b/build_files/build_environment/cmake/check_software.cmake
index bdb9036e3f9..34544ca176b 100644
--- a/build_files/build_environment/cmake/check_software.cmake
+++ b/build_files/build_environment/cmake/check_software.cmake
@@ -19,6 +19,12 @@ if(UNIX)
     yasm
   )
 
+  if(APPLE)
+    list(APPEND _required_software dos2unix)
+  else()
+    list(APPEND _required_software patchelf)
+  endif()
+
   foreach(_software ${_required_software})
     find_program(_software_find NAMES ${_software})
     if(NOT _software_find)
@@ -46,10 +52,10 @@ if(UNIX)
       "  ${_software_missing}\n"
       "\n"
       "On Debian and Ubuntu:\n"
-      "  apt install autoconf automake bison libtool yasm tcl ninja-build meson python3-mako\n"
+      "  apt install autoconf automake bison libtool yasm tcl ninja-build meson python3-mako patchelf\n"
       "\n"
       "On macOS (with homebrew):\n"
-      "  brew install autoconf automake bison flex libtool meson ninja pkg-config yasm\n"
+      "  brew install autoconf automake bison dos2unix flex libtool meson ninja pkg-config yasm\n"
       "\n"
       "Other platforms:\n"
       "  Install equivalent packages.\n")
diff --git a/build_files/build_environment/cmake/down

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list