diff options
author | Patrick Mours <pmours@nvidia.com> | 2020-10-29 15:38:16 +0300 |
---|---|---|
committer | Patrick Mours <pmours@nvidia.com> | 2020-10-29 19:02:12 +0300 |
commit | c26ad42ea43aa2160a765980087f3dd320db55f0 (patch) | |
tree | 533ec95739aa26f3fda6bbce812da630eab8b92b /build_files/build_environment/cmake | |
parent | c1b30e0ed1767852c5bce6b2b132859675547cef (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.cmake | 4 | ||||
-rw-r--r-- | build_files/build_environment/cmake/nanovdb.cmake | 54 | ||||
-rw-r--r-- | build_files/build_environment/cmake/openvdb.cmake | 28 | ||||
-rw-r--r-- | build_files/build_environment/cmake/options.cmake | 1 | ||||
-rw-r--r-- | build_files/build_environment/cmake/versions.cmake | 16 |
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) |