diff options
author | Kévin Dietrich <kevin.dietrich@mailoo.org> | 2016-01-23 10:39:29 +0300 |
---|---|---|
committer | Kévin Dietrich <kevin.dietrich@mailoo.org> | 2016-01-23 10:39:40 +0300 |
commit | e9452f909cdba368f54637cd0b15ff14d1c60cf3 (patch) | |
tree | 7d276fa9063f351e8b9f128f4436b87c2338c764 /build_files/cmake | |
parent | 275abd14a0963a42aeb6e7fcd9b61ac8bc00da42 (diff) |
Implementation of OpenVDB as a possible cache format for smoke
simulations.
This commits implements OpenVDB as an extra cache format in the Point
Cache system for smoke simulations. Compilation with the library is
turned off by default for now, and shall be enabled when the library is
present.
A documentation of its doings is available here: http://
wiki.blender.org/index.php/User:Kevindietrich/OpenVDBSmokeExport.
A guide to compile OpenVDB can be found here (Linux): http://
wiki.blender.org/index.php?title=Dev:Doc/Building_Blender/Linux/
Dependencies_From_Source#OpenVDB
Reviewers: sergey, lukastoenne, brecht, campbellbarton
Reviewed By: brecht, campbellbarton
Subscribers: galenb, Blendify, robocyte, Lapineige, bliblubli,
jtheninja, lukasstockner97, dingto, brecht
Differential Revision: https://developer.blender.org/D1721
Diffstat (limited to 'build_files/cmake')
-rw-r--r-- | build_files/cmake/Modules/FindOpenVDB.cmake | 74 | ||||
-rw-r--r-- | build_files/cmake/config/blender_lite.cmake | 1 | ||||
-rw-r--r-- | build_files/cmake/config/bpy_module.cmake | 1 | ||||
-rw-r--r-- | build_files/cmake/macros.cmake | 10 |
4 files changed, 86 insertions, 0 deletions
diff --git a/build_files/cmake/Modules/FindOpenVDB.cmake b/build_files/cmake/Modules/FindOpenVDB.cmake new file mode 100644 index 00000000000..a13feab8e0e --- /dev/null +++ b/build_files/cmake/Modules/FindOpenVDB.cmake @@ -0,0 +1,74 @@ +# - Find OPENVDB library +# Find the native OPENVDB includes and library +# This module defines +# OPENVDB_INCLUDE_DIRS, where to find openvdb.h, Set when +# OPENVDB_INCLUDE_DIR is found. +# OPENVDB_LIBRARIES, libraries to link against to use OPENVDB. +# OPENVDB_ROOT_DIR, The base directory to search for OPENVDB. +# This can also be an environment variable. +# OPENVDB_FOUND, If false, do not try to use OPENVDB. +# +# also defined, but not for general use are +# OPENVDB_LIBRARY, where to find the OPENVDB library. + +#============================================================================= +# Copyright 2015 Blender Foundation. +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= + +# If OPENVDB_ROOT_DIR was defined in the environment, use it. +IF(NOT OPENVDB_ROOT_DIR AND NOT $ENV{OPENVDB_ROOT_DIR} STREQUAL "") + SET(OPENVDB_ROOT_DIR $ENV{OPENVDB_ROOT_DIR}) +ENDIF() + +SET(_openvdb_SEARCH_DIRS + ${OPENVDB_ROOT_DIR} + /usr/local + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave + /opt/openvdb + /opt/lib/openvdb +) + +FIND_PATH(OPENVDB_INCLUDE_DIR + NAMES + openvdb/openvdb.h + HINTS + ${_openvdb_SEARCH_DIRS} + PATH_SUFFIXES + include +) + +FIND_LIBRARY(OPENVDB_LIBRARY + NAMES + openvdb + HINTS + ${_openvdb_SEARCH_DIRS} + PATH_SUFFIXES + lib64 lib +) + +# handle the QUIETLY and REQUIRED arguments and set OPENVDB_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(OPENVDB DEFAULT_MSG + OPENVDB_LIBRARY OPENVDB_INCLUDE_DIR) + +IF(OPENVDB_FOUND) + SET(OPENVDB_LIBRARIES ${OPENVDB_LIBRARY}) + SET(OPENVDB_INCLUDE_DIRS ${OPENVDB_INCLUDE_DIR}) +ENDIF(OPENVDB_FOUND) + +MARK_AS_ADVANCED( + OPENVDB_INCLUDE_DIR + OPENVDB_LIBRARY +) + +UNSET(_openvdb_SEARCH_DIRS) diff --git a/build_files/cmake/config/blender_lite.cmake b/build_files/cmake/config/blender_lite.cmake index 99e90caf793..a479506d0d7 100644 --- a/build_files/cmake/config/blender_lite.cmake +++ b/build_files/cmake/config/blender_lite.cmake @@ -47,6 +47,7 @@ set(WITH_OPENCOLLADA OFF CACHE BOOL "" FORCE) set(WITH_OPENCOLORIO OFF CACHE BOOL "" FORCE) set(WITH_OPENIMAGEIO OFF CACHE BOOL "" FORCE) set(WITH_OPENMP OFF CACHE BOOL "" FORCE) +set(WITH_OPENVDB OFF CACHE BOOL "" FORCE) set(WITH_RAYOPTIMIZATION OFF CACHE BOOL "" FORCE) set(WITH_SDL OFF CACHE BOOL "" FORCE) set(WITH_X11_XINPUT OFF CACHE BOOL "" FORCE) diff --git a/build_files/cmake/config/bpy_module.cmake b/build_files/cmake/config/bpy_module.cmake index b5b13b40987..41140151f04 100644 --- a/build_files/cmake/config/bpy_module.cmake +++ b/build_files/cmake/config/bpy_module.cmake @@ -31,3 +31,4 @@ set(WITH_INPUT_NDOF OFF CACHE BOOL "" FORCE) set(WITH_OPENCOLLADA OFF CACHE BOOL "" FORCE) set(WITH_INTERNATIONAL OFF CACHE BOOL "" FORCE) set(WITH_BULLET OFF CACHE BOOL "" FORCE) +set(WITH_OPENVDB OFF CACHE BOOL "" FORCE) diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake index 6194bd8351c..28617cd7142 100644 --- a/build_files/cmake/macros.cmake +++ b/build_files/cmake/macros.cmake @@ -282,6 +282,9 @@ function(SETUP_LIBDIRS) if(WITH_OPENCOLORIO) link_directories(${OPENCOLORIO_LIBPATH}) endif() + if(WITH_OPENVDB) + link_directories(${OPENVDB_LIBPATH}) + endif() if(WITH_IMAGE_OPENJPEG AND WITH_SYSTEM_OPENJPEG) link_directories(${OPENJPEG_LIBPATH}) endif() @@ -400,6 +403,9 @@ function(setup_liblinks target_link_libraries(${target} ${OPENSUBDIV_LIBRARIES}) endif() endif() + if(WITH_OPENVDB) + target_link_libraries(${target} ${OPENVDB_LIBRARIES}) + endif() if(WITH_CYCLES_OSL) target_link_libraries(${target} ${OSL_LIBRARIES}) endif() @@ -713,6 +719,10 @@ function(SETUP_BLENDER_SORTED_LIBS) list(APPEND BLENDER_SORTED_LIBS bf_intern_opensubdiv) endif() + if(WITH_OPENVDB) + list(APPEND BLENDER_SORTED_LIBS bf_intern_openvdb) + endif() + foreach(SORTLIB ${BLENDER_SORTED_LIBS}) set(REMLIB ${SORTLIB}) foreach(SEARCHLIB ${BLENDER_LINK_LIBS}) |