summaryrefslogtreecommitdiff
path: root/media-gfx/openvdb/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /media-gfx/openvdb/files
reinit the tree, so we can have metadata
Diffstat (limited to 'media-gfx/openvdb/files')
-rw-r--r--media-gfx/openvdb/files/openvdb-3.2.0-fix-build-system.patch262
-rw-r--r--media-gfx/openvdb/files/openvdb-3.2.0-numpy-fix.patch17
-rw-r--r--media-gfx/openvdb/files/openvdb-4.0.0-build-docs-once.patch32
-rw-r--r--media-gfx/openvdb/files/openvdb-4.0.0-make-docs-optional.patch71
-rw-r--r--media-gfx/openvdb/files/openvdb-4.0.0-namespace-fixes.patch65
-rw-r--r--media-gfx/openvdb/files/openvdb-4.0.0-python-module-install-dir-fix.patch16
6 files changed, 463 insertions, 0 deletions
diff --git a/media-gfx/openvdb/files/openvdb-3.2.0-fix-build-system.patch b/media-gfx/openvdb/files/openvdb-3.2.0-fix-build-system.patch
new file mode 100644
index 000000000000..66112af75daf
--- /dev/null
+++ b/media-gfx/openvdb/files/openvdb-3.2.0-fix-build-system.patch
@@ -0,0 +1,262 @@
+* Make build system honour the proper ABI library directory.
+* Replace -isystem arguments with -I, as the former causes issues with GCC 6.
+ See also:
+ https://bugs.gentoo.org/show_bug.cgi?id=597866
+ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70129
+
+--- a/doxygen-config
++++ b/doxygen-config
+@@ -2257,7 +2257,7 @@
+ # The default value is: png.
+ # This tag requires that the tag HAVE_DOT is set to YES.
+
+-DOT_IMAGE_FORMAT = png
++DOT_IMAGE_FORMAT = svg
+
+ # If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
+ # enable generation of interactive SVG images that allow zooming and panning.
+--- a/Makefile
++++ b/Makefile
+@@ -82,6 +82,7 @@
+
+ # The directory into which to install libraries, executables and header files
+ DESTDIR := /tmp/OpenVDB
++libdir = lib
+
+ # The parent directory of the boost/ header directory
+ BOOST_INCL_DIR := $(HT)/include
+@@ -158,6 +159,9 @@
+ # The directory containing libpython
+ PYTHON_LIB_DIR := $(HFS)/python/lib
+ PYTHON_LIB := -lpython$(PYTHON_VERSION)
++# The Directory to install the python module and includes to.
++PYTHON_INSTALL_INCL_DIR := $(DESTDIR)/python/include/python$(PYTHON_VERSION)
++PYTHON_INSTALL_LIB_DIR := $(DESTDIR)/python/lib/python$(PYTHON_VERSION)
+ # The directory containing libboost_python
+ BOOST_PYTHON_LIB_DIR := /rel/depot/third_party_build/boost/rhel6-1.46.1-0/lib
+ BOOST_PYTHON_LIB := -lboost_python-gcc41-mt-python26-1_46_1
+@@ -179,7 +183,6 @@
+ # (leave blank if Doxygen is unavailable)
+ DOXYGEN := doxygen
+
+-
+ #
+ # Ideally, users shouldn't need to change anything below this line.
+ #
+@@ -207,11 +210,7 @@
+ endif
+ endif
+
+-ifeq (yes,$(strip $(debug)))
+- OPTIMIZE := -g
+-else
+- OPTIMIZE := -O3 -DNDEBUG
+-endif
++OPTIMIZE := -DNDEBUG
+
+ ifeq (yes,$(strip $(verbose)))
+ QUIET :=
+@@ -242,12 +241,12 @@
+ has_python := yes
+ endif
+
+-INCLDIRS := -I . -I .. -isystem $(BOOST_INCL_DIR) -isystem $(ILMBASE_INCL_DIR) -isystem $(TBB_INCL_DIR)
++INCLDIRS := -I. -I.. -I$(BOOST_INCL_DIR) -I$(ILMBASE_INCL_DIR) -I$(TBB_INCL_DIR)
+ ifeq (yes,$(has_blosc))
+- INCLDIRS += -isystem $(BLOSC_INCL_DIR)
++ INCLDIRS += -I$(BLOSC_INCL_DIR)
+ endif
+ ifeq (yes,$(has_log4cplus))
+- INCLDIRS += -isystem $(LOG4CPLUS_INCL_DIR)
++ INCLDIRS += -I$(LOG4CPLUS_INCL_DIR)
+ endif
+
+ CXXFLAGS += -std=c++0x
+@@ -565,9 +564,9 @@
+ python/pyTransform.cc \
+ python/pyVec3Grid.cc \
+ #
+-PYCXXFLAGS := -fPIC -isystem python -isystem $(PYTHON_INCL_DIR) -isystem $(PYCONFIG_INCL_DIR)
++PYCXXFLAGS := -fPIC -Ipython -I$(PYTHON_INCL_DIR) -I$(PYCONFIG_INCL_DIR)
+ ifneq (,$(strip $(NUMPY_INCL_DIR)))
+-PYCXXFLAGS += -isystem $(NUMPY_INCL_DIR) -DPY_OPENVDB_USE_NUMPY
++PYCXXFLAGS += -I$(NUMPY_INCL_DIR) -DPY_OPENVDB_USE_NUMPY
+ endif
+ ifneq (no,$(strip $(PYTHON_WRAP_ALL_GRID_TYPES)))
+ PYCXXFLAGS += -DPY_OPENVDB_WRAP_ALL_GRID_TYPES
+@@ -678,7 +677,7 @@
+ @echo "Building $@ because of $(call list_deps)"
+ $(CXX) -c $(CXXFLAGS) -fPIC -o $@ $<
+
+-all: lib python vdb_print vdb_render vdb_test depend
++all: lib python vdb_print vdb_render vdb_view vdb_test depend
+
+ $(OBJ_NAMES): %.o: %.cc
+ @echo "Building $@ because of $(call list_deps)"
+@@ -719,8 +718,13 @@
+ @echo "Generating documentation because of $(list_deps)"
+ echo -e 'OUTPUT_DIRECTORY=./doc\nGENERATE_LATEX=YES\nGENERATE_HTML=NO' \
+ | cat doxygen-config - | $(DOXYGEN) - $(QUIET) \
+- && cd ./doc/latex && make refman.pdf $(QUIET) \
++ && cd ./doc/latex && $(MAKE) refman.pdf $(QUIET) \
+ && echo 'Created doc/latex/refman.pdf'
++ @#
++ mkdir -p $(DESTDIR)/share/doc/openvdb/pdf; \
++ echo "Created $(DESTDIR)/share/doc/openvdb/pdf"; \
++ cp -r -f doc/latex/refman.pdf $(DESTDIR)/share/doc/openvdb/pdf/; \
++ echo "Copied documentation to $(DESTDIR)/share/doc/openvdb/pdf/"; \
+
+ ifneq (,$(strip $(DOXYGEN)))
+ doc: $(DOC_INDEX)
+@@ -734,14 +738,14 @@
+
+ vdb_print: $(LIBOPENVDB) cmd/openvdb_print/main.cc
+ @echo "Building $@ because of $(list_deps)"
+- $(CXX) $(CXXFLAGS) -o $@ cmd/openvdb_print/main.cc -I . \
++ $(CXX) $(CXXFLAGS) -o $@ cmd/openvdb_print/main.cc -I. \
+ $(LIBOPENVDB_RPATH) -L$(CURDIR) $(LIBOPENVDB) \
+ $(LIBS_RPATH) $(CONCURRENT_MALLOC_LIB)
+
+ vdb_render: $(LIBOPENVDB) cmd/openvdb_render/main.cc
+ @echo "Building $@ because of $(list_deps)"
+- $(CXX) $(CXXFLAGS) -o $@ cmd/openvdb_render/main.cc -I . \
+- -isystem $(EXR_INCL_DIR) -isystem $(ILMBASE_INCL_DIR) \
++ $(CXX) $(CXXFLAGS) -o $@ cmd/openvdb_render/main.cc -I. \
++ -I$(EXR_INCL_DIR) -I$(ILMBASE_INCL_DIR) \
+ -Wl,-rpath,$(EXR_LIB_DIR) -L$(EXR_LIB_DIR) $(EXR_LIB) \
+ -Wl,-rpath,$(ILMBASE_LIB_DIR) -L$(ILMBASE_LIB_DIR) $(ILMBASE_LIB) \
+ $(LIBOPENVDB_RPATH) -L$(CURDIR) $(LIBOPENVDB) \
+@@ -761,12 +765,12 @@
+ $(LIBVIEWER_OBJ_NAMES): $(LIBVIEWER_INCLUDE_NAMES)
+ $(LIBVIEWER_OBJ_NAMES): %.o: %.cc
+ @echo "Building $@ because of $(list_deps)"
+- $(CXX) -c $(CXXFLAGS) -I . -isystem $(GLFW_INCL_DIR) -DGL_GLEXT_PROTOTYPES=1 -fPIC -o $@ $<
++ $(CXX) -c $(CXXFLAGS) -I. -I$(GLFW_INCL_DIR) -DGL_GLEXT_PROTOTYPES=1 -fPIC -o $@ $<
+
+ vdb_view: $(LIBOPENVDB) $(LIBVIEWER_OBJ_NAMES) cmd/openvdb_view/main.cc
+ @echo "Building $@ because of $(list_deps)"
+ $(CXX) $(CXXFLAGS) -o $@ cmd/openvdb_view/main.cc $(LIBVIEWER_OBJ_NAMES) \
+- -I . -Wl,-rpath,$(GLFW_LIB_DIR) -L$(GLFW_LIB_DIR) $(GLFW_LIB) \
++ -I. -Wl,-rpath,$(GLFW_LIB_DIR) -L$(GLFW_LIB_DIR) $(GLFW_LIB) \
+ $(LIBOPENVDB_RPATH) -L$(CURDIR) $(LIBOPENVDB) \
+ $(LIBVIEWER_FLAGS) $(LIBS_RPATH) $(BOOST_THREAD_LIB) $(CONCURRENT_MALLOC_LIB)
+ endif
+@@ -776,7 +780,7 @@
+ $(PYTHON_OBJ_NAMES): $(PYTHON_INCLUDE_NAMES)
+ $(PYTHON_OBJ_NAMES): %.o: %.cc
+ @echo "Building $@ because of $(list_deps)"
+- $(CXX) -c $(CXXFLAGS) -I . $(PYCXXFLAGS) -o $@ $<
++ $(CXX) -c $(CXXFLAGS) -I. $(PYCXXFLAGS) -o $@ $<
+ $(PYTHON_MODULE): $(LIBOPENVDB) $(PYTHON_OBJ_NAMES)
+ @echo "Building $@ because of $(list_deps)"
+ $(CXX) $(CXXFLAGS) $(PYCXXFLAGS) -shared $(PYTHON_SONAME_FLAGS) -o $@ $(PYTHON_OBJ_NAMES) \
+@@ -784,6 +788,22 @@
+ -Wl,-rpath,$(BOOST_PYTHON_LIB_DIR) -L$(BOOST_PYTHON_LIB_DIR) $(BOOST_PYTHON_LIB) \
+ $(LIBOPENVDB_RPATH) -L$(CURDIR) $(LIBOPENVDB) \
+ $(LIBS_RPATH) $(CONCURRENT_MALLOC_LIB)
++ @echo "Installing the python module and includes"
++ @#
++ mkdir -p $(PYTHON_INSTALL_INCL_DIR); \
++ echo "Created $(PYTHON_INSTALL_INCL_DIR)"; \
++ cp -f $(PYTHON_PUBLIC_INCLUDE_NAMES) $(PYTHON_INSTALL_INCL_DIR)/; \
++ echo "Copied Python header files to $(PYTHON_INSTALL_INCL_DIR)"; \
++ mkdir -p $(PYTHON_INSTALL_LIB_DIR); \
++ echo "Created $(PYTHON_INSTALL_LIB_DIR)"; \
++ cp -f $(PYTHON_MODULE) $(PYTHON_INSTALL_LIB_DIR)/; \
++ pushd $(PYTHON_INSTALL_LIB_DIR) > /dev/null; \
++ ln -f -s $(PYTHON_MODULE) $(PYTHON_SONAME); \
++ popd > /dev/null; \
++ echo "Copied Python module to $(PYTHON_INSTALL_LIB_DIR)"
++ @echo "Clean the Python modules so the next one will compile"
++ @#
++ $(RM) $(PYTHON_OBJ_NAMES)
+
+ ifeq (yes,$(has_python))
+ ifneq (,$(strip $(EPYDOC)))
+@@ -794,7 +814,7 @@
+ echo "Created $${pydocdir}"; \
+ export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$(CURDIR); \
+ export PYTHONPATH=${PYTHONPATH}:$(CURDIR); \
+- $(EPYDOC) --html -o $${pydocdir} $(PYTHON_MODULE_NAME) $(QUIET)
++ $(EPYDOC) --html --html-dir $${pydocdir} $(PYTHON_MODULE_NAME) $(QUIET)
+ else
+ pydoc:
+ @echo "$@"': $$EPYDOC is undefined'
+@@ -815,7 +835,7 @@
+
+ $(UNITTEST_OBJ_NAMES): %.o: %.cc
+ @echo "Building $@ because of $(list_deps)"
+- $(CXX) -c $(CXXFLAGS) -isystem $(CPPUNIT_INCL_DIR) -fPIC -o $@ $<
++ $(CXX) -c $(CXXFLAGS) -I$(CPPUNIT_INCL_DIR) -fPIC -o $@ $<
+
+ ifneq (,$(strip $(CPPUNIT_INCL_DIR)))
+ vdb_test: $(LIBOPENVDB) $(UNITTEST_OBJ_NAMES)
+@@ -835,7 +855,7 @@
+ @echo "$@"': $$(CPPUNIT_INCL_DIR) is undefined'
+ endif
+
+-install: lib python vdb_print vdb_render vdb_view doc pydoc
++install: lib vdb_print vdb_render vdb_view doc pydoc
+ mkdir -p $(DESTDIR)/include/openvdb
+ @echo "Created $(DESTDIR)/include/openvdb"
+ pushd $(DESTDIR)/include/openvdb > /dev/null; \
+@@ -851,42 +871,25 @@
+ fi
+ @echo "Copied header files to $(DESTDIR)/include"
+ @#
+- mkdir -p $(DESTDIR)/lib
+- @echo "Created $(DESTDIR)/lib/"
+- cp -f $(LIBOPENVDB) $(DESTDIR)/lib
+- pushd $(DESTDIR)/lib > /dev/null; \
++ mkdir -p $(DESTDIR)/$(libdir)
++ @echo "Created $(DESTDIR)/$(libdir)/"
++ cp -f $(LIBOPENVDB) $(DESTDIR)/$(libdir)
++ pushd $(DESTDIR)/$(libdir) > /dev/null; \
+ if [ -f $(LIBOPENVDB_SHARED) ]; then \
+ ln -f -s $(LIBOPENVDB_SHARED) $(LIBOPENVDB_SHARED_NAME); \
+ ln -f -s $(LIBOPENVDB_SHARED) $(LIBOPENVDB_SONAME); \
+ fi; \
+ popd > /dev/null
+- @echo "Copied libopenvdb to $(DESTDIR)/lib/"
++ @echo "Copied libopenvdb to $(DESTDIR)/$(libdir)/"
+ @#
+ if [ -f $(LIBVIEWER) ]; \
+ then \
+- cp -f $(LIBVIEWER) $(DESTDIR)/lib; \
+- pushd $(DESTDIR)/lib > /dev/null; \
++ cp -f $(LIBVIEWER) $(DESTDIR)/$(libdir); \
++ pushd $(DESTDIR)/$(libdir) > /dev/null; \
+ if [ -f $(LIBVIEWER_SHARED) ]; then \
+ ln -f -s $(LIBVIEWER_SHARED) $(LIBVIEWER_SHARED_NAME); fi; \
+ popd > /dev/null; \
+- echo "Copied libopenvdb_viewer to $(DESTDIR)/lib/"; \
+- fi
+- @#
+- if [ -f $(PYTHON_MODULE) ]; \
+- then \
+- installdir=$(DESTDIR)/python/include/python$(PYTHON_VERSION); \
+- mkdir -p $${installdir}; \
+- echo "Created $${installdir}"; \
+- cp -f $(PYTHON_PUBLIC_INCLUDE_NAMES) $${installdir}/; \
+- echo "Copied Python header files to $${installdir}"; \
+- installdir=$(DESTDIR)/python/lib/python$(PYTHON_VERSION); \
+- mkdir -p $${installdir}; \
+- echo "Created $${installdir}"; \
+- cp -f $(PYTHON_MODULE) $${installdir}/; \
+- pushd $${installdir} > /dev/null; \
+- ln -f -s $(PYTHON_MODULE) $(PYTHON_SONAME); \
+- popd > /dev/null; \
+- echo "Copied Python module to $${installdir}"; \
++ echo "Copied libopenvdb_viewer to $(DESTDIR)/$(libdir)/"; \
+ fi
+ @#
+ mkdir -p $(DESTDIR)/bin
+@@ -924,7 +927,7 @@
+ for f in $(UNITTEST_SRC_NAMES); \
+ do $(CXX) $(CXXFLAGS) -O0 \
+ -MM $$f -MT `echo $$f | sed 's%\.[^.]*%.o%'` \
+- -isystem $(CPPUNIT_INCL_DIR) >> $(DEPEND); \
++ -I$(CPPUNIT_INCL_DIR) >> $(DEPEND); \
+ done; \
+ fi
+
diff --git a/media-gfx/openvdb/files/openvdb-3.2.0-numpy-fix.patch b/media-gfx/openvdb/files/openvdb-3.2.0-numpy-fix.patch
new file mode 100644
index 000000000000..bef10240477c
--- /dev/null
+++ b/media-gfx/openvdb/files/openvdb-3.2.0-numpy-fix.patch
@@ -0,0 +1,17 @@
+diff --git a/python/pyOpenVDBModule.cc b/openvdb/python/pyOpenVDBModule.cc
+index 508c787..dd069e0 100644
+--- a/python/pyOpenVDBModule.cc
++++ b/python/pyOpenVDBModule.cc
+@@ -592,8 +592,12 @@ BOOST_PYTHON_MODULE(PY_OPENVDB_MODULE_NAME)
+
+ #ifdef PY_OPENVDB_USE_NUMPY
+ // Initialize NumPy.
++#if PY_MAJOR_VERSION >= 3
++ if (_import_array()) { };
++#else
+ import_array();
+ #endif
++#endif
+
+ using namespace openvdb::OPENVDB_VERSION_NAME;
+
diff --git a/media-gfx/openvdb/files/openvdb-4.0.0-build-docs-once.patch b/media-gfx/openvdb/files/openvdb-4.0.0-build-docs-once.patch
new file mode 100644
index 000000000000..5a8baee0f260
--- /dev/null
+++ b/media-gfx/openvdb/files/openvdb-4.0.0-build-docs-once.patch
@@ -0,0 +1,32 @@
+From 5bb7bc424b09f93417a1d447f2d4f3081394f964 Mon Sep 17 00:00:00 2001
+From: Nicholas Yue <yue.nicholas@gmail.com>
+Date: Thu, 17 Nov 2016 16:59:47 -0800
+Subject: [PATCH] Refine Doxygen run so that it is done only once and only
+ during the installation phase
+
+---
+ openvdb/CMakeLists.txt | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/openvdb/CMakeLists.txt b/openvdb/CMakeLists.txt
+index aa1a080..88e46ca 100644
+--- a/openvdb/CMakeLists.txt
++++ b/openvdb/CMakeLists.txt
+@@ -443,13 +443,15 @@ IF (OPENVDB_BUILD_DOCS)
+ FILE ( WRITE ${CMAKE_CURRENT_BINARY_DIR}/cmake-doxygen-config ${DOXYGEN_CONFIG_CONTENT} )
+ FILE ( APPEND ${CMAKE_CURRENT_BINARY_DIR}/cmake-doxygen-config "OUTPUT_DIRECTORY=${CMAKE_CURRENT_BINARY_DIR}/doc\n" )
+
+- ADD_CUSTOM_TARGET ( doc ALL
++ ADD_CUSTOM_TARGET ( doc
+ ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/cmake-doxygen-config
+ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
+ COMMENT "Generating API documentation with Doxygen" VERBATIM
+ )
+
+- INSTALL ( DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doc/html/ DESTINATION doc)
++ INSTALL ( CODE "EXECUTE_PROCESS(COMMAND \"${CMAKE_COMMAND}\" --build \"${PROJECT_BINARY_DIR}\" --target doc)")
++ INSTALL ( DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doc/html DESTINATION docs)
++
+ ENDIF ()
+
+ # Installation
diff --git a/media-gfx/openvdb/files/openvdb-4.0.0-make-docs-optional.patch b/media-gfx/openvdb/files/openvdb-4.0.0-make-docs-optional.patch
new file mode 100644
index 000000000000..92c4fa320596
--- /dev/null
+++ b/media-gfx/openvdb/files/openvdb-4.0.0-make-docs-optional.patch
@@ -0,0 +1,71 @@
+From 3c7f3247e443620658a5cb7b4e9cdea488c450d9 Mon Sep 17 00:00:00 2001
+From: Nicholas Yue <yue.nicholas@gmail.com>
+Date: Thu, 17 Nov 2016 03:58:58 -0800
+Subject: [PATCH] Fix the Doxygen generation problem but current solution is
+ not very elegant as there was a regeneration run of Doxygen. Committing this
+ for now so that at least it will work for the initial 4.0.0 release.
+ Introduce a CMake option variable to toggle the generation and installation
+ of doxygen
+
+---
+ CMakeLists.txt | 1 +
+ openvdb/CMakeLists.txt | 27 +++++++++++++++------------
+ 2 files changed, 16 insertions(+), 12 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 739d57f..32f82d2 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -33,6 +33,7 @@ PROJECT ( OpenVDB )
+ ENABLE_TESTING()
+
+ OPTION ( OPENVDB_BUILD_UNITTESTS "Build the OpenVDB unit tests" ON )
++OPTION ( OPENVDB_BUILD_DOCS "Build the OpenVDB documentation" OFF )
+ OPTION ( OPENVDB_BUILD_PYTHON_MODULE "Build the pyopenvdb Python module" ON )
+ OPTION ( OPENVDB_BUILD_HOUDINI_SOPS "Build the Houdini SOPs" OFF )
+ OPTION ( OPENVDB_BUILD_MAYA_PLUGIN "Build the Maya plugin" OFF )
+diff --git a/openvdb/CMakeLists.txt b/openvdb/CMakeLists.txt
+index f86b306..aa1a080 100644
+--- a/openvdb/CMakeLists.txt
++++ b/openvdb/CMakeLists.txt
+@@ -97,7 +97,9 @@ FIND_PACKAGE ( ZLIB REQUIRED )
+ FIND_PACKAGE ( ILMBase REQUIRED )
+ FIND_PACKAGE ( OpenEXR REQUIRED )
+ FIND_PACKAGE ( OpenGL REQUIRED )
+-FIND_PACKAGE ( Doxygen REQUIRED )
++IF (OPENVDB_BUILD_DOCS)
++ FIND_PACKAGE ( Doxygen REQUIRED )
++ENDIF ()
+ IF (OPENVDB_BUILD_UNITTESTS)
+ FIND_PACKAGE ( CPPUnit REQUIRED )
+ ENDIF ()
+@@ -435,17 +437,18 @@ IF ( OPENVDB_BUILD_PYTHON_MODULE )
+ ENDIF ( OPENVDB_BUILD_PYTHON_MODULE )
+
+ # Doxygen docmentation
+-FILE ( READ ${CMAKE_CURRENT_SOURCE_DIR}/doxygen-config DOXYGEN_CONFIG_CONTENT )
+-FILE ( WRITE ${CMAKE_CURRENT_BINARY_DIR}/cmake-doxygen-config ${DOXYGEN_CONFIG_CONTENT} )
+-FILE ( APPEND ${CMAKE_CURRENT_BINARY_DIR}/cmake-doxygen-config "OUTPUT_DIRECTORY=${CMAKE_CURRENT_BINARY_DIR}/doc\n" )
+-
+-ADD_CUSTOM_TARGET ( doc
+- ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/cmake-doxygen-config
+- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
+- COMMENT "Generating API documentation with Doxygen" VERBATIM
+-)
+-
+-IF ( EXISTS ${CMAKE_CURRENT_BINARY_DIR}/doc/html )
++IF (OPENVDB_BUILD_DOCS)
++
++ FILE ( READ ${CMAKE_CURRENT_SOURCE_DIR}/doxygen-config DOXYGEN_CONFIG_CONTENT )
++ FILE ( WRITE ${CMAKE_CURRENT_BINARY_DIR}/cmake-doxygen-config ${DOXYGEN_CONFIG_CONTENT} )
++ FILE ( APPEND ${CMAKE_CURRENT_BINARY_DIR}/cmake-doxygen-config "OUTPUT_DIRECTORY=${CMAKE_CURRENT_BINARY_DIR}/doc\n" )
++
++ ADD_CUSTOM_TARGET ( doc ALL
++ ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/cmake-doxygen-config
++ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
++ COMMENT "Generating API documentation with Doxygen" VERBATIM
++ )
++
+ INSTALL ( DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doc/html/ DESTINATION doc)
+ ENDIF ()
+
diff --git a/media-gfx/openvdb/files/openvdb-4.0.0-namespace-fixes.patch b/media-gfx/openvdb/files/openvdb-4.0.0-namespace-fixes.patch
new file mode 100644
index 000000000000..913c6079a081
--- /dev/null
+++ b/media-gfx/openvdb/files/openvdb-4.0.0-namespace-fixes.patch
@@ -0,0 +1,65 @@
+diff -purN a/cmake/FindILMBase.cmake b/cmake/FindILMBase.cmake
+--- a/cmake/FindILMBase.cmake 2016-11-16 20:24:17.000000000 +0000
++++ b/cmake/FindILMBase.cmake 2017-01-05 09:28:43.941910625 +0000
+@@ -57,15 +57,15 @@ OPTION ( ILMBASE_NAMESPACE_VERSIONING "N
+
+ IF ( ILMBASE_FOUND )
+
+- FILE ( STRINGS "${ILMBASE_LOCATION}/include/OpenEXR/IlmBaseConfig.h" _ilmbase_version_major_string REGEX "#define ILMBASE_VERSION_MAJOR ")
+- STRING ( REGEX REPLACE "#define ILMBASE_VERSION_MAJOR" "" _ilmbase_version_major_unstrip "${_ilmbase_version_major_string}")
+- STRING ( STRIP ${_ilmbase_version_major_unstrip} ILMBASE_VERSION_MAJOR )
++ IF ( ILMBASE_NAMESPACE_VERSIONING )
++ FILE ( STRINGS "${ILMBASE_LOCATION}/include/OpenEXR/IlmBaseConfig.h" _ilmbase_version_major_string REGEX "#define ILMBASE_VERSION_MAJOR ")
++ STRING ( REGEX REPLACE "#define ILMBASE_VERSION_MAJOR" "" _ilmbase_version_major_unstrip "${_ilmbase_version_major_string}")
++ STRING ( STRIP ${_ilmbase_version_major_unstrip} ILMBASE_VERSION_MAJOR )
+
+- FILE ( STRINGS "${ILMBASE_LOCATION}/include/OpenEXR/IlmBaseConfig.h" _ilmbase_version_minor_string REGEX "#define ILMBASE_VERSION_MINOR ")
+- STRING ( REGEX REPLACE "#define ILMBASE_VERSION_MINOR" "" _ilmbase_version_minor_unstrip "${_ilmbase_version_minor_string}")
+- STRING ( STRIP ${_ilmbase_version_minor_unstrip} ILMBASE_VERSION_MINOR )
++ FILE ( STRINGS "${ILMBASE_LOCATION}/include/OpenEXR/IlmBaseConfig.h" _ilmbase_version_minor_string REGEX "#define ILMBASE_VERSION_MINOR ")
++ STRING ( REGEX REPLACE "#define ILMBASE_VERSION_MINOR" "" _ilmbase_version_minor_unstrip "${_ilmbase_version_minor_string}")
++ STRING ( STRIP ${_ilmbase_version_minor_unstrip} ILMBASE_VERSION_MINOR )
+
+- IF ( ILMBASE_NAMESPACE_VERSIONING )
+ SET ( IEX_LIBRARY_NAME Iex-${ILMBASE_VERSION_MAJOR}_${ILMBASE_VERSION_MINOR} )
+ SET ( IEXMATH_LIBRARY_NAME IexMath-${ILMBASE_VERSION_MAJOR}_${ILMBASE_VERSION_MINOR} )
+ SET ( ILMTHREAD_LIBRARY_NAME IlmThread-${ILMBASE_VERSION_MAJOR}_${ILMBASE_VERSION_MINOR} )
+diff -purN a/cmake/FindOpenEXR.cmake b/cmake/FindOpenEXR.cmake
+--- a/cmake/FindOpenEXR.cmake 2016-11-16 20:24:17.000000000 +0000
++++ b/cmake/FindOpenEXR.cmake 2017-01-05 09:34:51.167736304 +0000
+@@ -52,22 +52,24 @@ OPTION ( OPENEXR_NAMESPACE_VERSIONING "N
+
+ IF ( OPENEXR_FOUND )
+
+- FILE ( STRINGS "${OPENEXR_LOCATION}/include/OpenEXR/OpenEXRConfig.h" _openexr_version_major_string REGEX "#define OPENEXR_VERSION_MAJOR ")
+- STRING ( REGEX REPLACE "#define OPENEXR_VERSION_MAJOR" "" _openexr_version_major_unstrip "${_openexr_version_major_string}")
+- STRING ( STRIP ${_openexr_version_major_unstrip} OPENEXR_VERSION_MAJOR )
+-
+- FILE ( STRINGS "${OPENEXR_LOCATION}/include/OpenEXR/OpenEXRConfig.h" _openexr_version_minor_string REGEX "#define OPENEXR_VERSION_MINOR ")
+- STRING ( REGEX REPLACE "#define OPENEXR_VERSION_MINOR" "" _openexr_version_minor_unstrip "${_openexr_version_minor_string}")
+- STRING ( STRIP ${_openexr_version_minor_unstrip} OPENEXR_VERSION_MINOR )
+-
+- MESSAGE ( STATUS "Found OpenEXR v${OPENEXR_VERSION_MAJOR}.${OPENEXR_VERSION_MINOR} at ${OPENEXR_LOCATION}" )
+-
+ IF ( OPENEXR_NAMESPACE_VERSIONING )
++ FILE ( STRINGS "${OPENEXR_LOCATION}/include/OpenEXR/OpenEXRConfig.h" _openexr_version_major_string REGEX "#define OPENEXR_VERSION_MAJOR ")
++ STRING ( REGEX REPLACE "#define OPENEXR_VERSION_MAJOR" "" _openexr_version_major_unstrip "${_openexr_version_major_string}")
++ STRING ( STRIP ${_openexr_version_major_unstrip} OPENEXR_VERSION_MAJOR )
++
++ FILE ( STRINGS "${OPENEXR_LOCATION}/include/OpenEXR/OpenEXRConfig.h" _openexr_version_minor_string REGEX "#define OPENEXR_VERSION_MINOR ")
++ STRING ( REGEX REPLACE "#define OPENEXR_VERSION_MINOR" "" _openexr_version_minor_unstrip "${_openexr_version_minor_string}")
++ STRING ( STRIP ${_openexr_version_minor_unstrip} OPENEXR_VERSION_MINOR )
++
++ MESSAGE ( STATUS "Found OpenEXR v${OPENEXR_VERSION_MAJOR}.${OPENEXR_VERSION_MINOR} at ${OPENEXR_LOCATION}" )
++
+ SET ( ILMIMF_LIBRARY_NAME IlmImf-${OPENEXR_VERSION_MAJOR}_${OPENEXR_VERSION_MINOR} )
+ ELSE ( OPENEXR_NAMESPACE_VERSIONING )
++ MESSAGE ( STATUS "Found OpenEXR at ${OPENEXR_LOCATION}" )
++
+ SET ( ILMIMF_LIBRARY_NAME IlmImf )
+ ENDIF ( OPENEXR_NAMESPACE_VERSIONING )
+-
++
+ SET ( OPENEXR_INCLUDE_DIRS
+ ${OPENEXR_LOCATION}/include
+ ${OPENEXR_LOCATION}/include/OpenEXR
diff --git a/media-gfx/openvdb/files/openvdb-4.0.0-python-module-install-dir-fix.patch b/media-gfx/openvdb/files/openvdb-4.0.0-python-module-install-dir-fix.patch
new file mode 100644
index 000000000000..34c6c76ea9da
--- /dev/null
+++ b/media-gfx/openvdb/files/openvdb-4.0.0-python-module-install-dir-fix.patch
@@ -0,0 +1,16 @@
+diff -purN a/openvdb/CMakeLists.txt b/openvdb/CMakeLists.txt
+--- a/openvdb/CMakeLists.txt 2016-11-16 20:24:17.000000000 +0000
++++ b/openvdb/CMakeLists.txt 2017-01-09 13:46:00.000000000 +0000
+@@ -426,10 +426,11 @@ IF ( OPENVDB_BUILD_PYTHON_MODULE )
+ ADD_TEST ( pytest ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/python/test/TestOpenVDB.py )
+ SET_TESTS_PROPERTIES ( pytest PROPERTIES ENVIRONMENT "PYTHONPATH=${CMAKE_CURRENT_BINARY_DIR}")
+
++ SET ( PYOENVDB_INSTALL_DIRECTORY lib/python${OPENVDB_PYTHON_VERSION_MAJOR}.${OPENVDB_PYTHON_VERSION_MINOR} CACHE STRING "The directory to install the pyopenvdb.so module.")
+ INSTALL ( TARGETS
+ pyopenvdb
+ DESTINATION
+- lib/python${OPENVDB_PYTHON_VERSION_MAJOR}.${OPENVDB_PYTHON_VERSION_MINOR}
++ ${PYOENVDB_INSTALL_DIRECTORY}
+ )
+
+ ENDIF ( OPENVDB_BUILD_PYTHON_MODULE )