File: dependencies.txt

package info (click to toggle)
openvdb 10.0.1-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 23,092 kB
  • sloc: cpp: 293,853; ansic: 2,268; python: 776; objc: 714; sh: 527; yacc: 382; lex: 348; makefile: 176
file content (215 lines) | stat: -rw-r--r-- 11,892 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
/**

@page dependencies Dependencies

@section depContents Contents
- @ref depComponents
  - @ref depDependencyTable
  - @ref depKnownIssues
- @ref depInstallingDependencies
  - @ref depUsingAptGet
  - @ref depUsingHomebrew
  - @ref depManInstall
<!-- - @ref depContents -->

------------------------------------------------------------------------------

@b Note: The dependency information on this page details a complete
requirements list for building OpenVDB as a @b 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](@ref build) 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]
(https://www.vfxplatform.com/). Not all dependencies exist in the VFX
Reference Platform, but for those that do, their specified versions are
@b always recommended.

@section depComponents OpenVDB Components

Component               | Requirements                                      | Optional
----------------------- | ------------------------------------------------- | --------
OpenVDB Core Library    | CMake, C++17 compiler, TBB::tbb                   | Blosc, ZLib, Log4cplus, IlmBase::Half, Boost::iostream
OpenVDB Print           | Core Library dependencies                         | -
OpenVDB LOD             | Core Library dependencies                         | -
OpenVDB Render          | Core Library dependencies                         | OpenEXR, IlmBase, libpng
OpenVDB View            | Core Library dependencies, OpenGL, GLFW3, GLEW*   | -
OpenVDB Python          | Core Library dependencies, Python, Boost::python  | Boost::numpy, 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                                           | -

 - @b * GLEW is only required for building the vdb_view binary on Windows.
 - @b ** CppUnit is only required for building the AX unit tests.
 - @b Note - Bison and Flex are only required for re-generation of the AX
 grammar which is not typically necessary for the majority of users.

@subsection depDependencyTable Dependency Table

Package        | Minimum | Recommended | Description                                                       | apt-get | Homebrew | Source
-------------- | ------- | ----------- | ----------------------------------------------------------------- | ------- | -------- | ------
CMake          | 3.18    | Latest      | Cross-platform family of tools designed to help build software    | Y       | Y        | https://cmake.org
GCC            | 9.3.1   | 9.3.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.28   | Latest      | C++ 17 Compiler: Microsoft Visual C++ Compiler                    | Y       | Y        | https://visualstudio.microsoft.com/vs
IlmBase        | 2.4     | 3.1         | Used half precision floating points and EXR serialization support | Y       | Y        | http://www.openexr.com
OpenEXR        | 2.4     | 3.1         | EXR serialization support                                         | Y       | Y        | http://www.openexr.com
TBB            | 2020.2  | 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.73    | 1.76        | Components: iostreams, python, numpy                              | Y       | Y        | https://www.boost.org
LLVM           | 10.0.0  | 10.0.0*     | Target-independent code generation                                | Y       | Y        | https://llvm.org/
Bison          | 3.0.0   | 3.7.0       | General-purpose parser generator                                  | Y       | Y        | https://www.gnu.org/software/gcc
Flex           | 2.6.0   | 2.6.4       | Fast lexical analyzer generator                                   | Y       | Y        | https://github.com/westes/flex
Python         | 3.7     | 3.7         | The python interpreter and libraries for C++/python bindings      | Y       | Y        | https://www.python.org
NumPy          | 1.19.0  | 1.20.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     | Latest      | 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

 - @b * See the note in [known issues](@ref depKnownIssues) regarding supported blosc/llvm versions.

@subsection depKnownIssues Known Issues

 - @b LLVM >= 15. LLVM has recently changed their IR pointer data types to be
 completely opaque. Some support is provided in LLVM 15 but tests with AX show
 that this is extremely unstable. AX currently only supports LLVM versions up
 until 14.X.X. See https://llvm.org/docs/OpaquePointers.html for more details.

 - @b GLFW: Crash with GLFW 3.2.1 when used with EGL on Linux. OpenVDB View may
 segfault on closure. Fixed in GLFW 3.3

 - @b Boost 1.66/1.67 + @b Python3 + @b NumPy: Known issue on UNIX systems
 which can cause the below python runtime error. Our minimum supported boost
 version now superseeds this issue:

@code{.sh}
RuntimeError: FATAL: module compiled as little endian, but detected different endianness at runtime.
@endcode

 - @b Blosc: OpenVDB has historically used an old version of blosc (1.5.0) to
 serialize .vdb files. OpenVDB has recently moved to a new blosc version minimum
 of 1.17.0. We have tested a range of blosc versions and found that the following
 versions are NOT compatible with OpenVDB caches written using blosc 1.5.0.
 Additionally these versions of blosc may generally not be compatible with OpenVDB
 itself. Avoid using these versions and upgrade to the new minimum of 1.17.0 where
 possible.

 - All versions from 1.11.0 through to, but excluding, 1.14.0.
 - Versions 1.16.0 and 1.16.1.

 For more information see:

 - https://www.blosc.org/posts/new-forward-compat-policy/
 - https://github.com/Blosc/c-blosc/issues/260
 - https://github.com/Blosc/c-blosc/issues/261

@section depInstallingDependencies Installing Dependencies

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

@subsection depUsingAptGet Using UNIX apt-get

@b Note:CppUnit is unavailable using apt-get. See the other package manager
methods or the [manual installation](@ref depManInstall) options.

@code{.sh}
#!/bin/bash
# Core library
apt-get install cmake                   # CMake
apt-get install libtbb-dev              # TBB
apt-get install zlibc                   # zlib
apt-get install libboost-iostreams-dev  # Boost::iostream
apt-get install libblosc-dev            # Blosc
# AX
apt-get install llvm-10-dev              # LLVM
# Python
apt-get install libboost-python-dev     # Boost::python
apt-get install libboost-numpy-dev      # Boost::numpy
apt-get install python-dev              # Python
apt-get install python-numpy            # NumPy
# Optional
apt-get install libpng-dev              # libpng
apt-get install libilmbase-dev          # IlmBase
apt-get install libopenexr-dev          # OpenEXR
apt-get install liblog4cplus-dev        # Log4cplus
apt-get install googletest              # GoogleTest
# vdb_view
apt-get install libglfw3-dev            # GLFW
# Documentation
apt-get install doxygen                 # doxygen
# CUDA for NanoVDB
apt-get install nvidia-cuda-toolkit     # CUDA
@endcode

@subsection depUsingHomebrew Using Homebrew

[Homebrew](https://brew.sh/) is a package manager for UNIX systems and is
an alternative to apt-get or manual installation from source.

@code{.sh}
#!/bin/bash
# Core library
brew install cmake                     # CMake
brew install tbb                       # TBB
brew install zlib                      # zlib
brew install boost                     # Boost
brew install c-blosc                   # blosc
# AX
brew install llvm                      # LLVM
# Python
brew install boost-python              # Boost-python
brew install python                    # Python
brew install numpy                     # NumPy
# Unit Tests
brew install gtest                     # GoogleTest
brew install cppunit                   # CppUnit
# vdb_view
brew install glfw                      # GLFW
# vdb_render
brew install ilmbase                   # IlmBase
brew install openexr                   # OpenEXR
brew install libpng                    # libpng
# Documentation
brew install doxygen                   # Doxygen
@endcode

@subsection depManInstall UNIX Manual Installations

Some dependencies may be unavailable using the above package manager methods.
Below are manual installation methods for these packages. Note that you will
have to provide your chosen installation locations to the OpenVDB CMake build
system when building OpenVDB.

@b CppUnit (for AX Unit Tests)

@code{.sh}
#!/bin/bash
wget http://dev-www.libreoffice.org/src/cppunit-1.13.2.tar.gz
tar -xvzf cppunit-1.13.2.tar.gz
cd cppunit-1.13.2
# Install to users home directory - you may customise this location
mkdir -p $HOME/cppunit
./configure --prefix=$HOME/cppunit
make
make install
@endcode

*/