[Bf-blender-cvs] [7a64650cccc] tmp_libupdate_34: Keep Blender building with 3.3 libraries on Linux/macOS

Brecht Van Lommel noreply at git.blender.org
Wed Aug 17 19:49:08 CEST 2022


Commit: 7a64650cccc7ff825cd6f0e24055f0140628ccfc
Author: Brecht Van Lommel
Date:   Wed Aug 17 18:01:41 2022 +0200
Branches: tmp_libupdate_34
https://developer.blender.org/rB7a64650cccc7ff825cd6f0e24055f0140628ccfc

Keep Blender building with 3.3 libraries on Linux/macOS

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

M	build_files/cmake/Modules/FindUSD.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	intern/cycles/cmake/external_libs.cmake
M	intern/cycles/cmake/macros.cmake

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

diff --git a/build_files/cmake/Modules/FindUSD.cmake b/build_files/cmake/Modules/FindUSD.cmake
index 0fd5f06bb35..f975b20806e 100644
--- a/build_files/cmake/Modules/FindUSD.cmake
+++ b/build_files/cmake/Modules/FindUSD.cmake
@@ -58,6 +58,9 @@ ELSE()
     get_filename_component(USD_LIBRARY_DIR ${USD_LIBRARY} DIRECTORY)
     SET(USD_INCLUDE_DIRS ${USD_INCLUDE_DIR})
     set(USD_LIBRARIES ${USD_LIBRARY})
+    IF(EXISTS ${USD_INCLUDE_DIR}/pxr/base/tf/pyModule.h)
+      SET(USD_PYTHON_SUPPORT ON)
+    ENDIF()
   ENDIF()
 ENDIF()
 
diff --git a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platform/platform_apple.cmake
index 88f574b23a1..03fa2ada29a 100644
--- a/build_files/cmake/platform/platform_apple.cmake
+++ b/build_files/cmake/platform/platform_apple.cmake
@@ -277,7 +277,10 @@ if(WITH_BOOST)
   if(WITH_INTERNATIONAL)
     list(APPEND _boost_FIND_COMPONENTS locale)
   endif()
-  if(WITH_USD)
+  if(WITH_OPENVDB)
+    list(APPEND _boost_FIND_COMPONENTS iostreams)
+  endif()
+  if(WITH_USD AND USD_PYTHON_SUPPORT)
     list(APPEND _boost_FIND_COMPONENTS python${PYTHON_VERSION_NO_DOTS})
   endif()
   find_package(Boost COMPONENTS ${_boost_FIND_COMPONENTS})
@@ -330,6 +333,10 @@ endif()
 
 if(WITH_OPENVDB)
   find_package(OpenVDB)
+  find_library(BLOSC_LIBRARIES NAMES blosc HINTS ${LIBDIR}/openvdb/lib)
+  if(BLOSC_LIBRARIES)
+    list(APPEND OPENVDB_LIBRARIES ${BLOSC_LIBRARIES})
+  endif()
   set(OPENVDB_DEFINITIONS)
   add_bundled_libraries(openvdb)
 endif()
diff --git a/build_files/cmake/platform/platform_old_libs_update.cmake b/build_files/cmake/platform/platform_old_libs_update.cmake
index 09c15ce1681..cf77c8fcd68 100644
--- a/build_files/cmake/platform/platform_old_libs_update.cmake
+++ b/build_files/cmake/platform/platform_old_libs_update.cmake
@@ -45,11 +45,11 @@ if(UNIX AND DEFINED NANOVDB_INCLUDE_DIR)
   endif()
 endif()
 
-# Shared libraries.
+# Detect update to 3.4 libs with shared libraries.
 if(UNIX AND
   DEFINED TBB_LIBRARY AND
   TBB_LIBRARY MATCHES "libtbb.a$" AND
-  EXISTS ${LIBDIR}/usd/lib/python)
+  EXISTS ${LIBDIR}/usd/include/pxr/base/tf/pyModule.h)
   message(STATUS "Auto updating CMake configuration for Blender 3.4 libraries")
   unset_cache_variables("^BLOSC")
   unset_cache_variables("^BOOST")
diff --git a/build_files/cmake/platform/platform_unix.cmake b/build_files/cmake/platform/platform_unix.cmake
index c8cabdb5a5c..dc426cbc58f 100644
--- a/build_files/cmake/platform/platform_unix.cmake
+++ b/build_files/cmake/platform/platform_unix.cmake
@@ -313,16 +313,14 @@ endif()
 
 if(WITH_OPENVDB)
   find_package(OpenVDB)
+  find_package_wrapper(Blosc)
 
   if(OPENVDB_FOUND)
     add_bundled_libraries(openvdb)
 
-    if(NOT EXISTS ${LIBDIR})
-      find_package_wrapper(Blosc)
-      if(NOT BLOSC_FOUND)
-        set(WITH_OPENVDB_BLOSC OFF)
-        message(STATUS "Blosc not found, disabling it for OpenVBD")
-      endif()
+    if(NOT EXISTS ${LIBDIR} AND NOT BLOSC_FOUND)
+      set(WITH_OPENVDB_BLOSC OFF)
+      message(STATUS "Blosc not found, disabling it for OpenVBD")
     endif()
   else()
     set(WITH_OPENVDB OFF)
@@ -379,10 +377,10 @@ if(WITH_BOOST)
     if(WITH_INTERNATIONAL)
       list(APPEND __boost_packages locale)
     endif()
-    if(WITH_OPENIMAGEIO)
-      list(APPEND __boost_packages filesystem)
+    if(WITH_OPENVDB)
+      list(APPEND __boost_packages iostreams)
     endif()
-    if(WITH_USD)
+    if(WITH_USD AND USD_PYTHON_SUPPORT)
       list(APPEND __boost_packages python${PYTHON_VERSION_NO_DOTS})
     endif()
     list(APPEND __boost_packages system)
diff --git a/intern/cycles/cmake/external_libs.cmake b/intern/cycles/cmake/external_libs.cmake
index 22245e07065..af2f280ae84 100644
--- a/intern/cycles/cmake/external_libs.cmake
+++ b/intern/cycles/cmake/external_libs.cmake
@@ -67,6 +67,7 @@ if(CYCLES_STANDALONE_REPOSITORY)
   if(EXISTS ${_cycles_lib_dir})
     _set_default(ALEMBIC_ROOT_DIR "${_cycles_lib_dir}/alembic")
     _set_default(BOOST_ROOT "${_cycles_lib_dir}/boost")
+    _set_default(BLOSC_ROOT_DIR "${_cycles_lib_dir}/blosc")
     _set_default(EMBREE_ROOT_DIR "${_cycles_lib_dir}/embree")
     _set_default(IMATH_ROOT_DIR "${_cycles_lib_dir}/imath")
     _set_default(GLEW_ROOT_DIR "${_cycles_lib_dir}/glew")
@@ -437,6 +438,15 @@ if(CYCLES_STANDALONE_REPOSITORY AND WITH_CYCLES_OPENVDB)
 
   if(NOT USD_OVERRIDE_OPENVDB)
     find_package(OpenVDB REQUIRED)
+
+    if(MSVC AND EXISTS ${_cycles_lib_dir})
+      set(BLOSC_LIBRARY
+        optimized ${BLOSC_ROOT_DIR}/lib/libblosc.lib
+        debug ${BLOSC_ROOT_DIR}/lib/libblosc_d.lib
+      )
+    else()
+      find_package(Blosc REQUIRED)
+    endif()
   endif()
 endif()
 
diff --git a/intern/cycles/cmake/macros.cmake b/intern/cycles/cmake/macros.cmake
index 7087af994b8..bc755143eb0 100644
--- a/intern/cycles/cmake/macros.cmake
+++ b/intern/cycles/cmake/macros.cmake
@@ -107,7 +107,7 @@ macro(cycles_external_libraries_append libraries)
     endif()
   endif()
   if(WITH_OPENVDB)
-    list(APPEND ${libraries} ${OPENVDB_LIBRARIES})
+    list(APPEND ${libraries} ${OPENVDB_LIBRARIES} ${BLOSC_LIBRARIES})
   endif()
   if(WITH_OPENIMAGEDENOISE)
     list(APPEND ${libraries} ${OPENIMAGEDENOISE_LIBRARIES})



More information about the Bf-blender-cvs mailing list