OpenVDB  12.0.0
Dependencies

Contents


Note: The dependency information on this page details a complete requirements list for building OpenVDB as a standalone package. If you wish to use OpenVDB with a supported 3rd party DCC (Houdini/Maya), make sure you've first read the Building OpenVDB information.


There are a number of optional and required dependencies necessary when building different components of OpenVDB. Below you'll find a full list of all dependencies, any minimum/recommended version requirements and some guides for getting these dependencies installed. You'll also find information on any known issues with particular software. Please report any issues not listed here to the OpenVDB TSC.

Note that OpenVDB is production tested against the VFX Reference Platform. Not all dependencies exist in the VFX Reference Platform, but for those that do, their specified versions are always recommended.

OpenVDB Components

Component Requirements Optional
OpenVDB Core Library CMake, C++17 compiler, TBB::tbb Blosc, ZLib, Log4cplus, Imath::Imath, Boost::iostream
OpenVDB Print Core Library dependencies -
OpenVDB LOD Core Library dependencies -
OpenVDB Render Core Library dependencies OpenEXR, Imath::Imath, libpng
OpenVDB View Core Library dependencies, OpenGL, GLFW3, GLEW* -
OpenVDB Python Core Library dependencies, Python, nanobind NumPy
OpenVDB AX Core Library dependencies, LLVM Bison, Flex
NanoVDB - Core Library, CUDA, TBB, Blosc, ZLib
OpenVDB UnitTests Core Library dependencies, GoogleTest CppUnit**
OpenVDB Documentation Doxygen -

Dependency Table

Package Minimum Recommended Description apt-get Homebrew Source
CMake 3.20 Latest Cross-platform family of tools designed to help build software Y Y https://cmake.org
GCC 11.2.1 11.2.1 C++ 17 Compiler: The GNU Compiler Collection Y Y https://www.gnu.org/software/gcc
Clang 5.0 Latest C++ 17 Compiler: A C language family frontend for LLVM Y Y https://clang.llvm.org
Intel ICC 19 Latest C++ 17 Compiler: Intels C++ Compiler Y Y https://software.intel.com/en-us/c-compilers
MSVC 19.30 19.30 C++ 17 Compiler: Microsoft Visual C++ Compiler Y Y https://visualstudio.microsoft.com/vs
Imath 3.1 Latest Half precision floating points Y Y http://www.openexr.com
OpenEXR 3.1 Latest EXR serialization support Y Y http://www.openexr.com
TBB 2020.3 2020.3 Threading Building Blocks - template library for task parallelism Y Y https://www.threadingbuildingblocks.org
ZLIB 1.2.7 Latest Compression library for disk serialization compression Y Y https://www.zlib.net
Boost 1.80 1.82 Components: iostreams Y Y https://www.boost.org
LLVM 13.0.0 15.0.0* Target-independent code generation Y Y https://llvm.org/
Bison 3.7.0 3.7.0 General-purpose parser generator Y Y https://www.gnu.org/software/gcc
Flex 2.6.4 2.6.4 Fast lexical analyzer generator Y Y https://github.com/westes/flex
Python 3.10 3.11 The python interpreter and libraries Y Y https://www.python.org
nanobind 2.0.0 2.1.0 C++/python bindings Y Y https://nanobind.readthedocs.io
NumPy 1.23.0 1.26.0 Scientific computing with Python Y Y http://www.numpy.org
GoogleTest 1.10 Latest A unit testing framework module for C++ Y Y https://github.com/google/googletest
CppUnit 1.10 Latest A unit testing framework module for C++ N Y https://freedesktop.org/wiki/Software/cppunit
Blosc 1.17.0* 1.17.0 Recommended dependency for improved disk compression Y Y https://github.com/Blosc/c-blosc/releases
Log4cplus 1.1.2 Latest An optional dependency for improved OpenVDB Logging Y Y https://github.com/log4cplus/log4cplus
libpng - Latest Library for manipulating PNG images Y Y http://www.libpng.org/pub/png/libpng.html
GLFW 3.1 > 3.3 Simple API for OpenGL development Y Y https://www.glfw.org
OpenGL 3.2 Latest Environment for developing portable graphics applications Y Y https://www.opengl.org
GLEW 1.0.0 Latest A cross-platform OpenGL extension loading library. Y Y http://glew.sourceforge.net
CUDA - Latest Parallel computing platform for graphical processing units. Y N https://developer.nvidia.com/cuda-downloads
Doxygen 1.8.8 1.8.11 Documentation generation from C++ Y Y http://www.doxygen.nl

Known Issues

For more information see:

Installing Dependencies

This section details a number of ways to get you up and running with the required OpenVDB dependencies.

Using UNIX apt-get

You can use apt to automatically install required packages. Note that different Ubuntu distributions will have different versions available. You can use apt pinning to request newer versions of specific package from later distributions if the required version isn't available by default (see man apt_preferences). For example, the below settings will request TBB specifically from Ubuntu 22.04 (Jammy).

1 Package: libtbb-dev
2 Pin: release n=jammy
3 Pin-Priority: 990

Alternatively you can install any missing dependencies manually or through other package managers.

1 #!/bin/bash
2 # Core library
3 apt-get install cmake # CMake
4 apt-get install libtbb-dev # TBB
5 apt-get install zlibc # zlib
6 apt-get install libboost-iostreams-dev # Boost::iostream
7 apt-get install libblosc-dev # Blosc
8 # AX
9 apt-get install llvm-15-dev # LLVM
10 # Python
11 apt-get install python-dev # Python
12 apt-get install python-numpy # NumPy
13 pip install nanobind # nanobind
14 # Optional
15 apt-get install libpng-dev # libpng
16 apt-get install libopenexr-dev # OpenEXR
17 apt-get install liblog4cplus-dev # Log4cplus
18 apt-get install googletest # GoogleTest
19 apt-get install libcppunit-dev # CppUnit
20 # vdb_view
21 apt-get install libglfw3-dev # GLFW
22 # Documentation
23 apt-get install doxygen # doxygen
24 # CUDA for NanoVDB
25 apt-get install nvidia-cuda-toolkit # CUDA

Using Homebrew

Homebrew is a package manager for UNIX systems and is an alternative to apt-get or manual installation from source.

1 #!/bin/bash
2 # Core library
3 brew install cmake # CMake
4 brew install tbb # TBB
5 brew install zlib # zlib
6 brew install boost # Boost
7 brew install c-blosc # blosc
8 # AX
9 brew install llvm # LLVM
10 # Python
11 brew install python # Python
12 brew install numpy # NumPy
13 brew install nanobind # nanobind
14 # Unit Tests
15 brew install gtest # GoogleTest
16 brew install cppunit # CppUnit
17 # vdb_view
18 brew install glfw # GLFW
19 # vdb_render
20 brew install openexr # OpenEXR
21 brew install libpng # libpng
22 # Documentation
23 brew install doxygen # Doxygen