Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Mours <pmours@nvidia.com>2020-10-29 15:38:16 +0300
committerPatrick Mours <pmours@nvidia.com>2020-10-29 19:02:12 +0300
commitc26ad42ea43aa2160a765980087f3dd320db55f0 (patch)
tree533ec95739aa26f3fda6bbce812da630eab8b92b /build_files/build_environment/cmake
parentc1b30e0ed1767852c5bce6b2b132859675547cef (diff)
Simplify and enable NanoVDB dependency installation
Changes NanoVDB to be a standalone dependency that is independent of the OpenVDB one. It works by downloading the "feature/nanovdb" branch of OpenVDB, but using the NanoVDB CMake in the "nanovdb" subdirectory. Since it is header-only, only the install target is used. Reviewed By: brecht Differential Revision: https://developer.blender.org/D9383
Diffstat (limited to 'build_files/build_environment/cmake')
-rw-r--r--build_files/build_environment/cmake/harvest.cmake4
-rw-r--r--build_files/build_environment/cmake/nanovdb.cmake54
-rw-r--r--build_files/build_environment/cmake/openvdb.cmake28
-rw-r--r--build_files/build_environment/cmake/options.cmake1
-rw-r--r--build_files/build_environment/cmake/versions.cmake16
5 files changed, 63 insertions, 40 deletions
diff --git a/build_files/build_environment/cmake/harvest.cmake b/build_files/build_environment/cmake/harvest.cmake
index 1fb56c4d568..1c5354aeb42 100644
--- a/build_files/build_environment/cmake/harvest.cmake
+++ b/build_files/build_environment/cmake/harvest.cmake
@@ -146,10 +146,8 @@ harvest(openjpeg/lib openjpeg/lib "*.a")
harvest(opensubdiv/include opensubdiv/include "*.h")
harvest(opensubdiv/lib opensubdiv/lib "*.a")
harvest(openvdb/include/openvdb openvdb/include/openvdb "*.h")
-if(WITH_NANOVDB)
- harvest(openvdb/nanovdb nanovdb/include/nanovdb "*.h")
-endif()
harvest(openvdb/lib openvdb/lib "*.a")
+harvest(nanovdb/nanovdb nanovdb/include/nanovdb "*.h")
harvest(xr_openxr_sdk/include/openxr xr_openxr_sdk/include/openxr "*.h")
harvest(xr_openxr_sdk/lib xr_openxr_sdk/lib "*.a")
harvest(osl/bin osl/bin "oslc")
diff --git a/build_files/build_environment/cmake/nanovdb.cmake b/build_files/build_environment/cmake/nanovdb.cmake
new file mode 100644
index 00000000000..89e7c38642d
--- /dev/null
+++ b/build_files/build_environment/cmake/nanovdb.cmake
@@ -0,0 +1,54 @@
+# ***** BEGIN GPL LICENSE BLOCK *****
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+set(NANOVDB_EXTRA_ARGS
+ # NanoVDB is header-only, so only need the install target
+ -DNANOVDB_BUILD_UNITTESTS=OFF
+ -DNANOVDB_BUILD_EXAMPLES=OFF
+ -DNANOVDB_BUILD_BENCHMARK=OFF
+ -DNANOVDB_BUILD_DOCS=OFF
+ -DNANOVDB_BUILD_TOOLS=OFF
+ -DNANOVDB_CUDA_KEEP_PTX=OFF
+ # Do not need to include any of the dependencies because of this
+ -DNANOVDB_USE_OPENVDB=OFF
+ -DNANOVDB_USE_OPENGL=OFF
+ -DNANOVDB_USE_OPENCL=OFF
+ -DNANOVDB_USE_CUDA=OFF
+ -DNANOVDB_USE_TBB=OFF
+ -DNANOVDB_USE_BLOSC=OFF
+ -DNANOVDB_USE_ZLIB=OFF
+ -DNANOVDB_USE_OPTIX=OFF
+ -DNANOVDB_ALLOW_FETCHCONTENT=OFF
+)
+
+ExternalProject_Add(nanovdb
+ URL ${NANOVDB_URI}
+ DOWNLOAD_DIR ${DOWNLOAD_DIR}
+ URL_HASH MD5=${NANOVDB_HASH}
+ PREFIX ${BUILD_DIR}/nanovdb
+ SOURCE_SUBDIR nanovdb
+ CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/nanovdb ${DEFAULT_CMAKE_FLAGS} ${NANOVDB_EXTRA_ARGS}
+ INSTALL_DIR ${LIBDIR}/nanovdb
+)
+
+if(WIN32)
+ ExternalProject_Add_Step(nanovdb after_install
+ COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/nanovdb/nanovdb ${HARVEST_TARGET}/nanovdb/include/nanovdb
+ DEPENDEES install
+ )
+endif()
diff --git a/build_files/build_environment/cmake/openvdb.cmake b/build_files/build_environment/cmake/openvdb.cmake
index 07d0297d5aa..2962f085e1b 100644
--- a/build_files/build_environment/cmake/openvdb.cmake
+++ b/build_files/build_environment/cmake/openvdb.cmake
@@ -54,20 +54,6 @@ set(OPENVDB_EXTRA_ARGS
-DOPENVDB_CORE_STATIC=${OPENVDB_STATIC}
-DOPENVDB_BUILD_BINARIES=Off
-DCMAKE_DEBUG_POSTFIX=_d
- # NanoVDB is header-only, so only need the install target
- -DNANOVDB_BUILD_UNITTESTS=OFF
- -DNANOVDB_BUILD_EXAMPLES=OFF
- -DNANOVDB_BUILD_BENCHMARK=OFF
- -DNANOVDB_BUILD_DOCS=OFF
- -DNANOVDB_BUILD_TOOLS=OFF
- -DNANOVDB_CUDA_KEEP_PTX=OFF
- -DNANOVDB_USE_OPENGL=OFF
- -DNANOVDB_USE_OPENGL=OFF
- -DNANOVDB_USE_CUDA=OFF
- -DNANOVDB_USE_TBB=OFF
- -DNANOVDB_USE_OPTIX=OFF
- -DNANOVDB_USE_OPENVDB=OFF
- -DNANOVDB_ALLOW_FETCHCONTENT=OFF
)
if(WIN32)
@@ -88,18 +74,12 @@ else()
)
endif()
-if(WITH_NANOVDB)
- set(OPENVDB_PATCH_FILE openvdb_nanovdb.diff)
-else()
- set(OPENVDB_PATCH_FILE openvdb.diff)
-endif()
-
ExternalProject_Add(openvdb
URL ${OPENVDB_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${OPENVDB_HASH}
PREFIX ${BUILD_DIR}/openvdb
- PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/openvdb/src/openvdb < ${PATCH_DIR}/${OPENVDB_PATCH_FILE}
+ PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/openvdb/src/openvdb < ${PATCH_DIR}/openvdb.diff
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openvdb ${DEFAULT_CMAKE_FLAGS} ${OPENVDB_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/openvdb
)
@@ -121,12 +101,6 @@ if(WIN32)
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/bin/openvdb.dll ${HARVEST_TARGET}/openvdb/bin/openvdb.dll
DEPENDEES install
)
- if(WITH_NANOVDB)
- ExternalProject_Add_Step(openvdb nanovdb_install
- COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openvdb/nanovdb ${HARVEST_TARGET}/nanovdb/include/nanovdb
- DEPENDEES after_install
- )
- endif()
endif()
if(BUILD_MODE STREQUAL Debug)
ExternalProject_Add_Step(openvdb after_install
diff --git a/build_files/build_environment/cmake/options.cmake b/build_files/build_environment/cmake/options.cmake
index d6b5762ccbc..29e2ffc7ed8 100644
--- a/build_files/build_environment/cmake/options.cmake
+++ b/build_files/build_environment/cmake/options.cmake
@@ -21,7 +21,6 @@ if(WIN32)
endif()
option(WITH_WEBP "Enable building of oiio with webp support" OFF)
option(WITH_BOOST_PYTHON "Enable building of boost with python support" OFF)
-option(WITH_NANOVDB "Enable building of OpenVDB with NanoVDB included" OFF)
set(MAKE_THREADS 1 CACHE STRING "Number of threads to run make with")
if(NOT BUILD_MODE)
diff --git a/build_files/build_environment/cmake/versions.cmake b/build_files/build_environment/cmake/versions.cmake
index 244ca6dd49f..653db9f740c 100644
--- a/build_files/build_environment/cmake/versions.cmake
+++ b/build_files/build_environment/cmake/versions.cmake
@@ -145,15 +145,13 @@ set(TBB_VERSION 2019_U9)
set(TBB_URI https://github.com/oneapi-src/oneTBB/archive/${TBB_VERSION}.tar.gz)
set(TBB_HASH 26263622e9187212ec240dcf01b66207)
-if(WITH_NANOVDB)
- set(OPENVDB_GIT_UID e62f7a0bf1e27397223c61ddeaaf57edf111b77f)
- set(OPENVDB_URI https://github.com/AcademySoftwareFoundation/openvdb/archive/${OPENVDB_GIT_UID}.tar.gz)
- set(OPENVDB_HASH 90919510bc6ccd630fedc56f748cb199)
-else()
- set(OPENVDB_VERSION 7.0.0)
- set(OPENVDB_URI https://github.com/AcademySoftwareFoundation/openvdb/archive/v${OPENVDB_VERSION}.tar.gz)
- set(OPENVDB_HASH fd6c4f168282f7e0e494d290cd531fa8)
-endif()
+set(OPENVDB_VERSION 7.0.0)
+set(OPENVDB_URI https://github.com/AcademySoftwareFoundation/openvdb/archive/v${OPENVDB_VERSION}.tar.gz)
+set(OPENVDB_HASH fd6c4f168282f7e0e494d290cd531fa8)
+
+set(NANOVDB_GIT_UID e62f7a0bf1e27397223c61ddeaaf57edf111b77f)
+set(NANOVDB_URI https://github.com/AcademySoftwareFoundation/openvdb/archive/${NANOVDB_GIT_UID}.tar.gz)
+set(NANOVDB_HASH 90919510bc6ccd630fedc56f748cb199)
set(IDNA_VERSION 2.9)
set(CHARDET_VERSION 3.0.4)