Commit: e691a3a9b7f3d7a57eb0a65a6fa8dde46aff523b
Author: Ray Molenkamp
Date:   Thu Aug 13 11:42:05 2020 -0600
Branches: master
https://developer.blender.org/rBe691a3a9b7f3d7a57eb0a65a6fa8dde46aff523b

Deps_builder: Update openvdb to a dynamic library

This patch changes openvdb from a static to a dynamic library.
this is in preparation for enabling pyopenvdb at some point
in the future.

Differential Revision: https://developer.blender.org/D8282

Reviewed by: brecht

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

M       build_files/build_environment/cmake/openvdb.cmake
M       build_files/build_environment/patches/openvdb.diff
M       build_files/cmake/platform/platform_win32.cmake
M       extern/mantaflow/CMakeLists.txt
M       source/creator/CMakeLists.txt

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

diff --git a/build_files/build_environment/cmake/openvdb.cmake 
b/build_files/build_environment/cmake/openvdb.cmake
index f432ade7dd1..f27d3f408a8 100644
--- a/build_files/build_environment/cmake/openvdb.cmake
+++ b/build_files/build_environment/cmake/openvdb.cmake
@@ -20,6 +20,14 @@ if(BUILD_MODE STREQUAL Debug)
   set(BLOSC_POST _d)
 endif()
 
+if(WIN32)
+  set(OPENVDB_SHARED ON)
+  set(OPENVDB_STATIC OFF)
+else()
+  set(OPENVDB_SHARED OFF)
+  set(OPENVDB_STATIC ON)
+endif()
+
 set(OPENVDB_EXTRA_ARGS
   -DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
   -DBoost_USE_MULTITHREADED=ON
@@ -42,8 +50,10 @@ set(OPENVDB_EXTRA_ARGS
   -DOPENEXR_LIBRARYDIR=${LIBDIR}/openexr/lib
    # All libs live in openexr, even the ilmbase ones
   -DILMBASE_LIBRARYDIR=${LIBDIR}/openexr/lib
-  -DOPENVDB_CORE_SHARED=Off
+  -DOPENVDB_CORE_SHARED=${OPENVDB_SHARED}
+  -DOPENVDB_CORE_STATIC=${OPENVDB_STATIC}
   -DOPENVDB_BUILD_BINARIES=Off
+  -DCMAKE_DEBUG_POSTFIX=_d
 )
 
 if(WIN32)
@@ -87,13 +97,15 @@ if(WIN32)
   if(BUILD_MODE STREQUAL Release)
     ExternalProject_Add_Step(openvdb after_install
       COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openvdb/include 
${HARVEST_TARGET}/openvdb/include
-      COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/lib/libopenvdb.lib 
${HARVEST_TARGET}/openvdb/lib/openvdb.lib
+      COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/lib/openvdb.lib 
${HARVEST_TARGET}/openvdb/lib/openvdb.lib
+      COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/bin/openvdb.dll 
${HARVEST_TARGET}/openvdb/bin/openvdb.dll
       DEPENDEES install
     )
   endif()
   if(BUILD_MODE STREQUAL Debug)
     ExternalProject_Add_Step(openvdb after_install
-      COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/lib/libopenvdb.lib 
${HARVEST_TARGET}/openvdb/lib/openvdb_d.lib
+      COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/lib/openvdb_d.lib 
${HARVEST_TARGET}/openvdb/lib/openvdb_d.lib
+      COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/bin/openvdb_d.dll 
${HARVEST_TARGET}/openvdb/bin/openvdb_d.dll
       DEPENDEES install
     )
   endif()
diff --git a/build_files/build_environment/patches/openvdb.diff 
b/build_files/build_environment/patches/openvdb.diff
index a9360cbafd3..db4506025ea 100644
--- a/build_files/build_environment/patches/openvdb.diff
+++ b/build_files/build_environment/patches/openvdb.diff
@@ -1,6 +1,6 @@
 diff -Naur orig/cmake/FindIlmBase.cmake openvdb/cmake/FindIlmBase.cmake
---- orig/cmake/FindIlmBase.cmake       2019-12-06 13:11:33 -0700
-+++ openvdb/cmake/FindIlmBase.cmake    2020-01-16 09:06:32 -0700
+--- orig/cmake/FindIlmBase.cmake       2019-12-06 12:11:33 -0700
++++ openvdb/cmake/FindIlmBase.cmake    2020-08-12 12:48:44 -0600
 @@ -225,6 +225,12 @@
    list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
      "-${IlmBase_VERSION_MAJOR}_${IlmBase_VERSION_MINOR}.lib"
@@ -15,8 +15,8 @@ diff -Naur orig/cmake/FindIlmBase.cmake 
openvdb/cmake/FindIlmBase.cmake
    if(ILMBASE_USE_STATIC_LIBS)
      list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
 diff -Naur orig/cmake/FindOpenEXR.cmake openvdb/cmake/FindOpenEXR.cmake
---- orig/cmake/FindOpenEXR.cmake       2019-12-06 13:11:33 -0700
-+++ openvdb/cmake/FindOpenEXR.cmake    2020-01-16 09:06:39 -0700
+--- orig/cmake/FindOpenEXR.cmake       2019-12-06 12:11:33 -0700
++++ openvdb/cmake/FindOpenEXR.cmake    2020-08-12 12:48:44 -0600
 @@ -218,6 +218,12 @@
    list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
      "-${OpenEXR_VERSION_MAJOR}_${OpenEXR_VERSION_MINOR}.lib"
@@ -31,9 +31,20 @@ diff -Naur orig/cmake/FindOpenEXR.cmake 
openvdb/cmake/FindOpenEXR.cmake
    if(OPENEXR_USE_STATIC_LIBS)
      list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
 diff -Naur orig/openvdb/CMakeLists.txt openvdb/openvdb/CMakeLists.txt
---- orig/openvdb/CMakeLists.txt        2019-12-06 13:11:33 -0700
-+++ openvdb/openvdb/CMakeLists.txt     2020-01-16 08:56:25 -0700
-@@ -193,11 +193,12 @@
+--- orig/openvdb/CMakeLists.txt        2019-12-06 12:11:33 -0700
++++ openvdb/openvdb/CMakeLists.txt     2020-08-12 14:12:26 -0600
+@@ -105,7 +105,9 @@
+   #        
http://boost.2283326.n4.nabble.com/CMake-config-scripts-broken-in-1-70-td4708957.html
+   #        
https://github.com/boostorg/boost_install/commit/160c7cb2b2c720e74463865ef0454d4c4cd9ae7c
+   set(BUILD_SHARED_LIBS ON)
+-  set(Boost_USE_STATIC_LIBS OFF)
++  if(NOT WIN32) # blender links boost statically on windows
++    set(Boost_USE_STATIC_LIBS OFF)
++  endif()
+ endif()
+ 
+ find_package(Boost ${MINIMUM_BOOST_VERSION} REQUIRED COMPONENTS iostreams 
system)
+@@ -193,6 +195,7 @@
    if(OPENVDB_DISABLE_BOOST_IMPLICIT_LINKING)
      add_definitions(-DBOOST_ALL_NO_LIB)
    endif()
@@ -41,33 +52,69 @@ diff -Naur orig/openvdb/CMakeLists.txt 
openvdb/openvdb/CMakeLists.txt
  endif()
  
  # @todo Should be target definitions
- if(WIN32)
--  add_definitions(-D_WIN32 -DNOMINMAX -DOPENVDB_DLL)
-+  add_definitions(-D_WIN32 -DNOMINMAX -DOPENVDB_STATICLIB)
- endif()
- 
- ##### Core library configuration
-diff -Naur orig/openvdb/cmd/CMakeLists.txt openvdb/openvdb/cmd/CMakeLists.txt
---- orig/openvdb/cmd/CMakeLists.txt    2019-12-06 13:11:33 -0700
-+++ openvdb/openvdb/cmd/CMakeLists.txt 2020-01-16 08:56:25 -0700
-@@ -53,7 +53,7 @@
- endif()
- 
- if(WIN32)
--  add_definitions(-D_WIN32 -DNOMINMAX -DOPENVDB_DLL)
-+  add_definitions(-D_WIN32 -DNOMINMAX -DOPENVDB_STATICLIB)
- endif()
- 
- # rpath handling
-diff -Naur orig/openvdb/unittest/CMakeLists.txt 
openvdb/openvdb/unittest/CMakeLists.txt
---- orig/openvdb/unittest/CMakeLists.txt       2019-12-06 13:11:33 -0700
-+++ openvdb/openvdb/unittest/CMakeLists.txt    2020-01-16 08:56:25 -0700
-@@ -49,7 +49,7 @@
- endif()
+@@ -383,7 +386,12 @@
+ # imported targets.
  
- if(WIN32)
--  add_definitions(-D_WIN32 -DNOMINMAX -DOPENVDB_DLL)
-+  add_definitions(-D_WIN32 -DNOMINMAX -DOPENVDB_STATICLIB)
+ if(OPENVDB_CORE_SHARED)
+-  add_library(openvdb_shared SHARED ${OPENVDB_LIBRARY_SOURCE_FILES})
++  if(WIN32)
++    configure_file(version.rc.in ${CMAKE_CURRENT_BINARY_DIR}/version.rc @ONLY)
++    add_library(openvdb_shared SHARED ${OPENVDB_LIBRARY_SOURCE_FILES} 
${CMAKE_CURRENT_BINARY_DIR}/version.rc)
++  else()
++    add_library(openvdb_shared SHARED ${OPENVDB_LIBRARY_SOURCE_FILES})
++  endif()
  endif()
  
- ##### VDB unit tests
+ if(OPENVDB_CORE_STATIC)
+diff -Naur orig/openvdb/version.rc.in openvdb/openvdb/version.rc.in
+--- orig/openvdb/version.rc.in 1969-12-31 17:00:00 -0700
++++ openvdb/openvdb/version.rc.in      2020-08-12 14:15:01 -0600
+@@ -0,0 +1,48 @@
++#include <winver.h>
++
++#define VER_FILEVERSION             
@OpenVDB_MAJOR_VERSION@,@OpenVDB_MINOR_VERSION@,@OpenVDB_PATCH_VERSION@,0
++#define VER_FILEVERSION_STR         
"@OpenVDB_MAJOR_VERSION@.@OpenVDB_MINOR_VERSION@.@[email protected]\0"
++
++#define VER_PRODUCTVERSION          
@OpenVDB_MAJOR_VERSION@,@OpenVDB_MINOR_VERSION@,@OpenVDB_PATCH_VERSION@,0
++#define VER_PRODUCTVERSION_STR      
"@OpenVDB_MAJOR_VERSION@.@OpenVDB_MINOR_VERSION@\0"
++
++#ifndef DEBUG
++#define VER_DEBUG                   0
++#else
++#define VER_DEBUG                   VS_FF_DEBUG
++#endif
++
++VS_VERSION_INFO VERSIONINFO
++FILEVERSION     VER_FILEVERSION
++PRODUCTVERSION  VER_PRODUCTVERSION
++FILEFLAGSMASK   VS_FFI_FILEFLAGSMASK
++FILEFLAGS       (VER_DEBUG)
++FILEOS          VOS__WINDOWS32
++FILETYPE        VFT_DLL
++FILESUBTYPE     VFT2_UNKNOWN
++BEGIN
++    BLOCK "StringFileInfo"
++    BEGIN
++        BLOCK "040904E4"
++        BEGIN
++            VALUE "FileDescription",  "OpenVDB"
++            VALUE "FileVersion",      VER_FILEVERSION_STR
++            VALUE "InternalName",     "OpenVDB"
++            VALUE "ProductName",      "OpenVDB"
++            VALUE "ProductVersion",   VER_PRODUCTVERSION_STR
++        END
++    END
++
++    BLOCK "VarFileInfo"
++    BEGIN
++        /* The following line should only be modified for localized versions. 
    */
++        /* It consists of any number of WORD,WORD pairs, with each pair       
    */
++        /* describing a language,codepage combination supported by the file.  
    */
++        /*                                                                    
    */
++        /* For example, a file might have values "0x409,1252" indicating that 
it  */
++        /* supports English language (0x409) in the Windows ANSI codepage 
(1252). */
++
++        VALUE "Translation", 0x409, 1252
++
++    END
++END
diff --git a/build_files/cmake/platform/platform_win32.cmake 
b/build_files/cmake/platform/platform_win32.cmake
index dfcd5d75444..b8af2dfc961 100644
--- a/build_files/cmake/platform/platform_win32.cmake
+++ b/build_files/cmake/platform/platform_win32.cmake
@@ -416,9 +416,6 @@ if(WITH_BOOST)
   if(WITH_INTERNATIONAL)
     list(APPEND boost_extra_libs locale)
   endif()
-  if(WITH_OPENVDB)
-    list(APPEND boost_extra_libs iostreams)
-  endif()
   set(Boost_USE_STATIC_RUNTIME ON) # prefix lib
   set(Boost_USE_MULTITHREADED ON) # suffix -mt
   set(Boost_USE_STATIC_LIBS ON) # suffix -s
@@ -524,12 +521,11 @@ if(WITH_OPENCOLORIO)
 endif()
 
 if(WITH_OPENVDB)
-  set(BLOSC_LIBRARIES optimized ${LIBDIR}/blosc/lib/libblosc.lib debug 
${LIBDIR}/blosc/lib/libblosc_d.lib)
   set(OPENVDB ${LIBDIR}/openVDB)
   set(OPENVDB_LIBPATH ${OPENVDB}/lib)
   set(OPENVDB_INCLUDE_DIRS ${OPENVDB}/include)
-  set(OPENVDB_LIBRARIES optimized ${OPENVDB_LIBPATH}/openvdb.lib debug 
${OPENVDB_LIBPATH}/openvdb_d.lib ${BLOSC_LIBRARIES})
-  set(OPENVDB_DEFINITIONS -DNOMINMAX -DOPENVDB_STATICLIB -D_USE_MATH_DEFINES)
+  set(OPENVDB_LIBRARIES optimized ${OPENVDB_LIBPATH}/openvdb.lib debug 
${OPENVDB_LIBPATH}/openvdb_d.lib )
+  set(OPENVDB_DEFINITIONS -DNOMINMAX -D_USE_MATH_DEFINES)
 endif()
 
 if(WITH_OPENIMAGEDENOISE)
diff --git a/extern/mantaflow/CMakeLists.txt b/extern/mantaflow/CMakeLists.txt
index 9f66b42c6bf..989f45c69b4 100644
--- a/extern/mantaflow/CMakeLists.txt
+++ b/extern/mantaflow/CMakeLists.txt
@@ -64,7 +64,9 @@ endif()
 
 if(WITH_OPENVDB)
   add_definitions(-DOPENVDB=1)
-  add_definitions(-DOPENVDB_STATICLIB)
+  if(NOT WIN32)
+    add_definitions(-DOPENVDB_STATICLIB)
+  endif()
 endif()
 
 if(WITH_OPENVDB_BLOSC)
diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt
index 8784d9f1744..f923c834e93 100644
--- a/source/creator/CMakeLists.txt
+++ b/source/creator/CMakeLists.txt
@@ -722,6 +722,19 @@ elseif(WIN32)
     endif()
   endif()
 
+  if(WITH_OPENVDB)
+      install(
+        F

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to