summaryrefslogtreecommitdiff
path: root/media-gfx/openvdb
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
reinit the tree, so we can have metadata
Diffstat (limited to 'media-gfx/openvdb')
-rw-r--r--media-gfx/openvdb/Manifest15
-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
-rw-r--r--media-gfx/openvdb/metadata.xml35
-rw-r--r--media-gfx/openvdb/openvdb-3.2.0.ebuild161
-rw-r--r--media-gfx/openvdb/openvdb-4.0.0.ebuild77
-rw-r--r--media-gfx/openvdb/openvdb-4.0.2.ebuild74
11 files changed, 825 insertions, 0 deletions
diff --git a/media-gfx/openvdb/Manifest b/media-gfx/openvdb/Manifest
new file mode 100644
index 000000000000..accd142508f8
--- /dev/null
+++ b/media-gfx/openvdb/Manifest
@@ -0,0 +1,15 @@
+AUX openvdb-3.2.0-fix-build-system.patch 10122 SHA256 3683ade3d2ce8f24f354452e2f39bba0f6c7a82f9693f2b6fa6569819a44a08a SHA512 15bcce34e0020a229b499aef81ecca496ce4a59fee7a03a47590aaee3491cb6a1bfe44bcc5d2282ac2025f989b3c97b12663442f29bb907a4f5762c59c71618b WHIRLPOOL b44f48af3101381e32dec580f4a3c99344915be1e6bbc397a079886372a2f88b041b9586e034811ae23adcecfe7ee46a5e0cc81a5c7e0fe5fdcbeb25da30b53e
+AUX openvdb-3.2.0-numpy-fix.patch 449 SHA256 f53641c3dfb8a67cfe8b70d8fce84d26e52a72f484b336d629f7f04623fd79fc SHA512 3ef31ebe30b849f20e8380096fa0306be8df25c9fc807b74cbacfcedcab21d67b56674a5bd7c896c0fd2453ab165b254d5f3780fce893a4d57f1fc9b99f60cc7 WHIRLPOOL 93ec9969ae5012bcd7da28939ec616643ab5644f0594a3e30d19180a5815564aa4d92944feec8e5dee75172deca6a877489a00d9cccacea4f22ef368708459fc
+AUX openvdb-4.0.0-build-docs-once.patch 1318 SHA256 9eb23f4c7bc18bfadd31a32f24e75737175035b557d7e2b5bd5620d2262d0c83 SHA512 7255881f72fc718e34318a1e7f5e11305d27a733a914a8b6d7f74a41d356ede04d18cd40e0b483e170b20a2837c29b4b1fcf5c1510b210428783e2458a6fe60a WHIRLPOOL 88054d9a5250fa11288c4999e10ad3753e8efa3dc6a351fc1db0f37a6bcfa48277785172706e01baef5ab1f1a0b894f305ea86699474622617e790ba082be0a4
+AUX openvdb-4.0.0-make-docs-optional.patch 2950 SHA256 0c2e51b0c2406d3b4aa6f1ef6be7fed10151739b728163513d86d780f4b42d37 SHA512 95d90b3f5c428dd13cac3d382da5950c0bba4d0a1c4722d553e14b6ec6243d3774ac99d9eca770a22c2b90c0c9b4e49351268fcd760cffbb38b64cd4fb2a881f WHIRLPOOL 732f1218f13f8f6310849d922d9296709a97ae46e9578e73ce6b11e1245663f258b9e69b2eeb33e6a6edafc47fce97963a98bc87b3ee222514b73bd1bc3740f5
+AUX openvdb-4.0.0-namespace-fixes.patch 4335 SHA256 b3d4743a189865882cb522c8f34f76f29f567fb8417849b38d84dc246bc74961 SHA512 20808d035b2e7fd07081a430ba97ab97931014665668bf823782615c9d6e29dfed96592f623259c848d3df5e62106fc09d43b89d47e8d0e63f89a3defe089b80 WHIRLPOOL 8d36129a30352e3d0fa0141bcbd5b802e40e73793ea9fd12520af7b0eb13077be64927b87649ead59253e4ebec09e2308e657215e03c845d88bebd4d4f1dee12
+AUX openvdb-4.0.0-python-module-install-dir-fix.patch 824 SHA256 05b8e5461d9708deaf961ebab4714bfae3f4f43e329b85543fa4f17f267fee91 SHA512 55786fb82fd5293200c088bf3617d85f73fff380b1ecca569e68d60346c649925e43647f46eff0897047c7b803ab59f6d78a9441b8be8152155ca0ef026fd39b WHIRLPOOL a50a46829f1a8084989cd99bd497f320851084f275a1468a4fdf35b385fa5b3f4f524feafda80fed128053baa33b7e07338368196186cf9422577805764997c7
+DIST openvdb-3.2.0.tar.gz 1368870 SHA256 d4b6eb63a2c1c62ca449399f3d7789638fde655c32a977b50717b727420a634b SHA512 df9a4895b219aae3b5a9616c34eb846d565877ff76648405691f0c903507f6faba94e8eba9173423b50cb5cef80f3ec500a9f70977cb7161701d39fd105abc91 WHIRLPOOL 3b76ba4998ac39405bbbdf0b1a80488234c5f25e8b0943d4520d9fa783384a111e48ff2120e942f5d9b3862e1f227ff89dcc633842e1290060afb1836785455f
+DIST openvdb-4.0.0.tar.gz 1545221 SHA256 eaf37b8e723cfd011df350cb0ef93ffa22d927bf7cb1f72c38176fce523b3537 SHA512 138e23408d725f153f5545c8083cd16f6b3e5cf80308e080d5e463f74f947759cdf5f9d818137ebffaf8b2de77bffa8f38ef0d20758a1418aea1c71702c0001d WHIRLPOOL 8b6413dc3bb7aa6efb2b5472b9df0ccc8493082be02ddd9243fa6ccc1cf183612c8700e3384d1a26f321dda99022292338d61bfa3576cc6ad96a0f35de6fd226
+DIST openvdb-4.0.2-patchset-01.tar.xz 16420 SHA256 c1cbc2f7d484fc3ff0d438e842c81a754996d5fd01f88cc86264bef468bf1050 SHA512 e9399d245d5e2b4130576d688691ac965f031b957df7803b8859f863634b27987c33aabadc5fb463b9d3eec333be84b89cb619dce5bc81c0390d8fb19da830c3 WHIRLPOOL 3d3a59ceab8dc031098047722c539eb1448c1048ac2134cf497a41f4b68eaafc30a80ac1d609a6bd01b554beb8e4693a33a766c5f66e8699bf44e79b349e0b35
+DIST openvdb-4.0.2.tar.gz 1689119 SHA256 7d995976cf124136b874d006496c37589f32de1b877ee7ccce626710823e8dbb SHA512 8e3e12583b81f9b9303b309e839c8321c67b67ff8a0e61bb56c87276bf25c0deff22f5a73c7c5b661b8e5df345bfdabfa6b0aea9bf16fce57d9c53a76751c75d WHIRLPOOL 2ff44f4795fbb141d60fc03b1c5499ce0c0b970ff205d34e5fbd2221d94ff29b5ce43d349e58263f8b54f025cad0e44a6fa0bb58e170296427600d8acb6a69e6
+EBUILD openvdb-3.2.0.ebuild 4011 SHA256 230e8e78e1d03f1733b98f7b16faf560bc71f3afe4bc4a0e0cd54e5bf1617a4e SHA512 c84c3022dad66f313415e01d35db4c9ce28b5a0863a0e5fd8cb20f7c07537dfd06022d9ba688e0e6469224ca2777891c2d812758e53d649d750022463a14abc6 WHIRLPOOL 6203226e2b4eef86fd083f7af6309cb30832b3684be24de3569f57eb2ff9b2bf13e9c6cb2e2bd3f5f0f2abe42e5d5fcd96233d8aac827bdf1a3577adf4d8ac69
+EBUILD openvdb-4.0.0.ebuild 1927 SHA256 b460feb0cdd55f561977a4c597696e6fa74a2d622fcf539210ab60693c48b287 SHA512 dfffa4cb7393df8683df085935acd528683fc7596132cb49cea3c962772f89d732d9a36081403203a3e11470d258c24ee7c509caed2ae56f156ba2298cc9774e WHIRLPOOL 3defb54ff2b12d754faca958510cf662051a29cfd330723bfe5d97d3b7c45771ac2c49bfba7303b12b3fb9102a03c8eefdf7e0df4434ee6a1435d04f5c4e62b5
+EBUILD openvdb-4.0.2.ebuild 1954 SHA256 9b38c94a518178aa349ddbc71d4495e591f6f6811eeaec01d69b5a1e56be3d59 SHA512 a08dce7c38f5475b28b1a1e4d501635ff0c70dadcaaf6a009ba4c0b9e7e701263e8c96491b52769bd6b594f1e90598bfe30e712af43bde4a80b61fe90c007d0b WHIRLPOOL 7f14628d261a55224faaff25966670f12cadca77262888f8692f1e10010917f7cecc519bf0f28ab1a7d8cb3dc1e871e3b04379ec535baf5bda6df198591c59c2
+MISC ChangeLog 1550 SHA256 0c2e07adabb461b36caac5a5f721da3258407607d6cb883ec6af5a888ed66ed1 SHA512 b4e23ac5562069c50079450d94029edeba0c280fa170f0f315dab799830d22d003de78f15986bdf7e64f6797650c7f7c6f69b3c654816855148d4e0977b52276 WHIRLPOOL c38e964fe6a4ce8427b7b50b519d730665882c0a193d914f1468a6ea7c55c44d3f8a8980a258b04d80268995830ec6f479a3e218dee097eeafaa5e32473ae67a
+MISC metadata.xml 1250 SHA256 1113c0c991a7817384b18b0f1b17cfe007de3c152ae80865f5a3fef91d700fc1 SHA512 658f3d0461bdd1c79af3224222b6ea1c8f3107de6520cc80b39590aef0588836d7d04e114200d027eb7b7d2dd1865e60f1135b982eeb3155d3ba102734f1db93 WHIRLPOOL 5cbe7eeb091d305430b8a2733d8a6002b3dac6dc3e3dc1e36a3beed2df5560200d98dc659a51fb5a0a26eaa6aad27f35fb77c9398dfbd9fd8330f13230065b3b
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 )
diff --git a/media-gfx/openvdb/metadata.xml b/media-gfx/openvdb/metadata.xml
new file mode 100644
index 000000000000..12b9cf4a8f77
--- /dev/null
+++ b/media-gfx/openvdb/metadata.xml
@@ -0,0 +1,35 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer restrict="&gt;=media-gfx/openvdb-3.1.0" type="person">
+ <email>j.scruggs@gmail.com</email>
+ <name>Jonathan Scruggs</name>
+ </maintainer>
+ <maintainer restrict="&gt;=media-gfx/openvdb-3.1.0" type="person">
+ <email>agrigo2001@yahoo.com.au</email>
+ <name>Adrian Grigo</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <longdescription>
+ Libraries from Dreamworks Animation for the efficient manipulation
+ of volumetric data used in big budget movies like 'Cloudy with a
+ Chance of Meatballs2' and 'How to Train Your Dragon 2'.
+ </longdescription>
+ <use>
+ <flag restrict="&gt;=media-gfx/openvdb-4.0.0" name="abi3-compat">
+ Enables compatibility with the old 3.x ABI.
+ enabled by dfault.
+ </flag>
+ <flag restrict="&lt;=media-gfx/openvdb-3.2.0" name="openvdb-compression">
+ Adds enhanced compression to files through
+ <pkg>dev-libs/c-blosc</pkg>. Very useful so
+ enabled by dfault.
+ </flag>
+ </use>
+ <upstream>
+ <remote-id type="github">dreamworksanimation/openvdb</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/media-gfx/openvdb/openvdb-3.2.0.ebuild b/media-gfx/openvdb/openvdb-3.2.0.ebuild
new file mode 100644
index 000000000000..bdd39bb6e1f4
--- /dev/null
+++ b/media-gfx/openvdb/openvdb-3.2.0.ebuild
@@ -0,0 +1,161 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python{2_7,3_4,3_5} )
+
+inherit eutils python-r1 toolchain-funcs
+
+DESCRIPTION="Libs for the efficient manipulation of volumetric data"
+HOMEPAGE="http://www.openvdb.org"
+
+SRC_URI="https://github.com/dreamworksanimation/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MPL-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+openvdb-compression doc python X"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+COMMON_DEPEND="
+ sys-libs/zlib
+ >=dev-libs/boost-1.62:=[${PYTHON_USEDEP}]
+ media-libs/openexr
+ dev-util/cppunit
+ X? ( media-libs/glfw )
+ dev-libs/jemalloc
+ python? ( dev-python/numpy[${PYTHON_USEDEP}] )
+ openvdb-compression? ( >=dev-libs/c-blosc-1.5.0 )
+ dev-libs/log4cplus"
+
+RDEPEND="python? ( ${PYTHON_DEPS} )
+ ${COMMON_DEPEND}"
+
+DEPEND="${RDEPEND}
+ dev-cpp/tbb
+ doc? (
+ app-doc/doxygen
+ python? ( dev-python/pdoc[${PYTHON_USEDEP}] )
+ )
+ ${COMMON_DEPEND}"
+
+S="${WORKDIR}/${P}/${PN}"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-numpy-fix.patch
+ "${FILESDIR}"/${P}-fix-build-system.patch
+)
+
+python_module_compile() {
+ mypythonargs=(
+ PYTHON_VERSION=${EPYTHON/python/}
+ PYTHON_INCL_DIR="$(python_get_includedir)"
+ PYCONFIG_INCL_DIR="$(python_get_includedir)"
+ PYTHON_LIB_DIR="$(python_get_library_path)"
+ PYTHON_LIB="$(python_get_LIBS)"
+ PYTHON_INSTALL_INCL_DIR="${D%/}$(python_get_includedir)"
+ PYTHON_INSTALL_LIB_DIR="${D%/}$(python_get_sitedir)"
+ NUMPY_INCL_DIR="$(python_get_sitedir)"/numpy/core/include/numpy
+ BOOST_PYTHON_LIB_DIR="${myprefixlibdir}"
+ BOOST_PYTHON_LIB=-lboost_python-${EPYTHON/python/}
+ )
+
+ einfo "Compiling module for ${EPYTHON}."
+ emake python "${myemakeargs[@]}" "${mypythonargs[@]}" EPYDOC="" CXX="$(tc-getCXX)"
+
+ # This is so the correct version of pdoc is used
+ mypyscriptdir=$(python_get_scriptdir)
+}
+
+src_compile() {
+ # The build system is designed to compile and install all
+ # in one go, so doing each phase separately would be be
+ # impossible and the functions would all overlap anyways.
+ # Do nothing
+ return
+}
+
+src_install() {
+ local myprefix="${EPREFIX}"/usr
+ local myprefixlibdir="${myprefix}"/"$(get_libdir)"
+ local mypyscriptdir
+
+ # So individule targets can be called without duplication
+ # Common depends:
+ local myemakeargs=(
+ rpath=no
+ shared=yes
+ libdir="$(get_libdir)"
+ LIBOPENVDB_RPATH=
+ DESTDIR="${D}"
+ HFS="${myprefix}"
+ HT="${myprefix}"
+ HDSO="${myprefixlibdir}"
+ CPPUNIT_INCL_DIR="${myprefix}"/include/cppunit
+ CPPUNIT_LIB_DIR="${myprefixlibdir}"
+ LOG4CPLUS_INCL_DIR="${myprefix}"/include/log4cplus
+ LOG4CPLUS_LIB_DIR="${myprefixlibdir}"
+ )
+
+ # Create python list here for use during install phase:
+ # - If python is used, then the last used module will trigger
+ # document install phase. It's the same doc, so build once.
+ # - If no python used, then this will remail blanked out to
+ # disable pydoc.
+ # - pydoc will be called if doc and python use flags are set.
+ local mypythonargs=(
+ PYTHON_VERSION=
+ PYTHON_INCL_DIR=
+ PYCONFIG_INCL_DIR=
+ PYTHON_LIB_DIR=
+ PYTHON_LIB=
+ PYTHON_INSTALL_INCL_DIR=
+ PYTHON_INSTALL_LIB_DIR=
+ NUMPY_INCL_DIR=
+ BOOST_PYTHON_LIB_DIR=
+ BOOST_PYTHON_LIB=
+ )
+
+ # Optional depends:
+ if use X; then
+ myemakeargs+=(
+ GLFW_INCL_DIR="${myprefixlibdir}"
+ GLFW_LIB_DIR="${myprefixlibdir}"
+ )
+ else
+ myemakeargs+=(
+ GLFW_INCL_DIR=
+ GLFW_LIB_DIR=
+ GLFW_LIB=
+ GLFW_MAJOR_VERSION=
+ )
+ fi
+
+ if use openvdb-compression; then
+ myemakeargs+=(
+ BLOSC_INCL_DIR="${myprefix}"/include
+ BLOSC_LIB_DIR="${myprefixlibdir}"
+ )
+ else
+ myemakeargs+=(
+ BLOSC_INCL_DIR=
+ BLOSC_LIB_DIR=
+ )
+ fi
+
+ use doc || myemakeargs+=( DOXYGEN= )
+
+ # Create python modules for each version selected
+ use python && python_foreach_impl python_module_compile
+
+ if use python && use doc; then
+ mypythonargs+=( EPYDOC="${mypyscriptdir}"/pdoc )
+ else
+ mypythonargs+=( EPYDOC="" )
+ fi
+
+ einfo "Compiling the main components."
+ emake install "${myemakeargs[@]}" "${mypythonargs[@]}" CXX="$(tc-getCXX)"
+}
diff --git a/media-gfx/openvdb/openvdb-4.0.0.ebuild b/media-gfx/openvdb/openvdb-4.0.0.ebuild
new file mode 100644
index 000000000000..f3168eb1ec2e
--- /dev/null
+++ b/media-gfx/openvdb/openvdb-4.0.0.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+PYTHON_COMPAT=( python{2_7,3_4,3_5} )
+
+inherit eutils flag-o-matic cmake-utils python-single-r1
+
+DESCRIPTION="Libs for the efficient manipulation of volumetric data"
+HOMEPAGE="http://www.openvdb.org"
+
+SRC_URI="https://github.com/dreamworksanimation/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MPL-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+abi3-compat doc python"
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+RDEPEND="
+ >=dev-libs/boost-1.62:=[python?,${PYTHON_USEDEP}]
+ >=dev-libs/c-blosc-1.5.0
+ dev-libs/jemalloc
+ dev-libs/log4cplus
+ media-libs/glfw:=
+ media-libs/openexr:=
+ sys-libs/zlib
+ x11-libs/libXi
+ x11-libs/libXrandr
+ x11-libs/libXinerama
+ x11-libs/libXcursor
+ python? (
+ ${PYTHON_DEPS}
+ dev-python/numpy[${PYTHON_USEDEP}]
+ )"
+DEPEND="${RDEPEND}
+ dev-cpp/tbb
+ doc? (
+ app-doc/doxygen
+ python? ( dev-python/pdoc[${PYTHON_USEDEP}] )
+ )"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-make-docs-optional.patch
+ "${FILESDIR}"/${P}-build-docs-once.patch
+ "${FILESDIR}"/${P}-namespace-fixes.patch
+ "${FILESDIR}"/${P}-python-module-install-dir-fix.patch
+)
+
+src_configure() {
+ local myprefix="${EPREFIX}"/usr/
+
+ # To stay in sync with Boost
+ append-cxxflags -std=c++14
+
+ # Enable unit tests later in 4.0.1
+ local mycmakeargs=(
+ -DOPENVDB_BUILD_UNITTESTS=OFF
+ -DOPENVDB_BUILD_DOCS=$(usex doc)
+ -DOPENVDB_BUILD_PYTHON_MODULE=$(usex python)
+ -DOPENVDB_ENABLE_3_ABI_COMPATIBLE=$(usex abi3-compat)
+ -DBLOSC_LOCATION="${myprefix}"
+ -DGLEW_LOCATION="${myprefix}"
+ -DUSE_GLFW3=ON
+ -DGLFW3_LOCATION="${myprefix}"
+ -DILMBASE_LOCATION="${myprefix}"
+ -DILMBASE_NAMESPACE_VERSIONING=OFF
+ -DOPENEXR_LOCATION="${myprefix}"
+ -DOPENEXR_NAMESPACE_VERSIONING=OFF
+ -DTBB_LOCATION="${myprefix}"
+ )
+
+ use python && mycmakeargs+=( -DPYOENVDB_INSTALL_DIRECTORY=$(python_get_sitedir) )
+
+ cmake-utils_src_configure
+}
diff --git a/media-gfx/openvdb/openvdb-4.0.2.ebuild b/media-gfx/openvdb/openvdb-4.0.2.ebuild
new file mode 100644
index 000000000000..aeac72948ca4
--- /dev/null
+++ b/media-gfx/openvdb/openvdb-4.0.2.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} )
+
+inherit cmake-utils flag-o-matic python-single-r1 versionator
+
+DESCRIPTION="Libs for the efficient manipulation of volumetric data"
+HOMEPAGE="http://www.openvdb.org"
+SRC_URI="https://github.com/dreamworksanimation/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ https://github.com/dracwyrm/gentoo-patches/raw/master/${PN}/${P}-patchset-01.tar.xz"
+
+LICENSE="MPL-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+abi3-compat doc python"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+RDEPEND="sys-libs/zlib:=
+ >=dev-libs/boost-1.62:=[python?,${PYTHON_USEDEP}]
+ media-libs/openexr:=
+ media-libs/glfw:=
+ x11-libs/libXi
+ x11-libs/libXrandr
+ x11-libs/libXinerama
+ x11-libs/libXcursor
+ dev-libs/jemalloc
+ >=dev-libs/c-blosc-1.5.0
+ dev-libs/log4cplus
+ python? (
+ ${PYTHON_DEPS}
+ dev-python/numpy[${PYTHON_USEDEP}]
+ )"
+
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ dev-cpp/tbb
+ doc? ( app-doc/doxygen[latex] )"
+
+PATCHES=(
+ "${WORKDIR}/0001-Change-hardcoded-paths-to-GNUInstallDirs-variables.patch"
+ "${WORKDIR}/0002-Use-PkgConfig-to-find-IlmBase-and-OpenEXR.patch"
+ "${WORKDIR}/0003-Boost-1.65-NumPy-support.patch"
+)
+
+pkg_setup() {
+ use python && python-single-r1_pkg_setup
+}
+
+src_configure() {
+ local myprefix="${EPREFIX}/usr/"
+
+ # To stay in sync with Boost
+ append-cxxflags -std=c++14
+
+ local mycmakeargs=(
+ -DOPENVDB_BUILD_UNITTESTS=OFF
+ -DOPENVDB_BUILD_DOCS=$(usex doc)
+ -DCMAKE_INSTALL_DOCDIR="share/doc/${PF}"
+ -DOPENVDB_BUILD_PYTHON_MODULE=$(usex python)
+ -DOPENVDB_ENABLE_3_ABI_COMPATIBLE=$(usex abi3-compat)
+ -DOPENVDB_ENABLE_RPATH=OFF
+ -DUSE_GLFW3=ON
+ -DBLOSC_LOCATION="${myprefix}"
+ -DGLEW_LOCATION="${myprefix}"
+ -DGLFW3_LOCATION="${myprefix}"
+ -DTBB_LOCATION="${myprefix}"
+ )
+
+ use python && mycmakeargs+=( -DPYOENVDB_INSTALL_DIRECTORY=${python_get_sitedir} )
+
+ cmake-utils_src_configure
+}