commit:     b62193bab0b3de371047ddb0aacce74591cabcb8
Author:     Bernd Waibel <waebbl-gentoo <AT> posteo <DOT> net>
AuthorDate: Sat Dec  4 20:37:39 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Dec  4 21:52:42 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b62193ba

media-gfx/openvdb: fix issue if imath and ilmbase are both installed

The patch fixes an issue when OPENVDB_BUILD_BINARIES and OPENVDB_BUILD_RENDER
are set and both, dev-libs/imath and media-libs/ilmbase are being installed
and allows the package to configure properly in this case.

Additionally it fixes the installation location of the python module.

Bug: https://bugs.gentoo.org/790350
Package-Manager: Portage-3.0.28, Repoman-3.0.3
Signed-off-by: Bernd Waibel <waebbl-gentoo <AT> posteo.net>
Closes: https://github.com/gentoo/gentoo/pull/23185
Signed-off-by: Sam James <sam <AT> gentoo.org>

 ...lmbase-if-imath-and-ilmbase-are-installed.patch | 37 ++++++++++++++++++++++
 ...unconditionally-search-Python-interpreter.patch | 34 ++++++++++++++++++++
 ...penvdb-8.2.0.ebuild => openvdb-8.2.0-r1.ebuild} | 24 ++++++++++----
 3 files changed, 88 insertions(+), 7 deletions(-)

diff --git 
a/media-gfx/openvdb/files/openvdb-8.2.0-fix-finding-ilmbase-if-imath-and-ilmbase-are-installed.patch
 
b/media-gfx/openvdb/files/openvdb-8.2.0-fix-finding-ilmbase-if-imath-and-ilmbase-are-installed.patch
new file mode 100644
index 000000000000..88752e9fa0eb
--- /dev/null
+++ 
b/media-gfx/openvdb/files/openvdb-8.2.0-fix-finding-ilmbase-if-imath-and-ilmbase-are-installed.patch
@@ -0,0 +1,37 @@
+From: Bernd Waibel <[email protected]>
+Date: Sat, 4 Dec 2021 20:16:42 +0100
+Subject: [PATCH] fix finding ilmbase if imath and ilmbase are installed
+
+If both, ilmbase-2.5 and imath-3 are installed, the configuration fails
+if OPENVDB_BUILD_BINARIES and OPENVDB_BUILD_RENDER are set.
+The patch adds an additional guard based on the USE_IMATH_HALF option
+being set and thus decide whether to search for and use imath or ilmbase.
+
+Signed-off-by: Bernd Waibel <[email protected]>
+--- a/openvdb/openvdb/cmd/CMakeLists.txt
++++ b/openvdb/openvdb/cmd/CMakeLists.txt
+@@ -81,12 +81,17 @@ endif()
+ #### vdb_render
+ 
+ if(OPENVDB_BUILD_VDB_RENDER)
+-  find_package(Imath CONFIG)
+-  if (NOT TARGET Imath::Imath)
++  if(USE_IMATH_HALF)
++    find_package(Imath CONFIG)
++    if (NOT TARGET Imath::Imath)
++      find_package(IlmBase ${MINIMUM_ILMBASE_VERSION} REQUIRED COMPONENTS 
Half Iex IlmThread Imath)
++      find_package(OpenEXR ${MINIMUM_OPENEXR_VERSION} REQUIRED COMPONENTS 
IlmImf)
++    else()
++      find_package(OpenEXR CONFIG)
++    endif()
++  else()
+     find_package(IlmBase ${MINIMUM_ILMBASE_VERSION} REQUIRED COMPONENTS Half 
Iex IlmThread Imath)
+     find_package(OpenEXR ${MINIMUM_OPENEXR_VERSION} REQUIRED COMPONENTS 
IlmImf)
+-  else()
+-    find_package(OpenEXR CONFIG)
+   endif()
+ 
+   set(VDB_RENDER_SOURCE_FILES openvdb_render.cc)
+-- 
+2.34.1
+

diff --git 
a/media-gfx/openvdb/files/openvdb-8.2.0-unconditionally-search-Python-interpreter.patch
 
b/media-gfx/openvdb/files/openvdb-8.2.0-unconditionally-search-Python-interpreter.patch
new file mode 100644
index 000000000000..933d2965b2bc
--- /dev/null
+++ 
b/media-gfx/openvdb/files/openvdb-8.2.0-unconditionally-search-Python-interpreter.patch
@@ -0,0 +1,34 @@
+From: Bernd Waibel <[email protected]>
+Date: Sat, 4 Dec 2021 20:45:49 +0100
+Subject: [PATCH] unconditionally search Python interpreter
+
+When setting PYOPENVDB_INSTALL_DIRECTORY, CMake would fail with:
+```
+-- Could NOT find Python (missing: Python_LIBRARIES Development 
Development.Module Development.Embed) (found version "3.9.9")
+CMake Error at openvdb/openvdb/python/CMakeLists.txt:65 (message):
+  Could NOT find Python::Module (Required is at least version "2.7")
+Call Stack (most recent call first):
+  openvdb/openvdb/python/CMakeLists.txt:112 (openvdb_check_python_version)
+  ```
+
+It seems like we always need to search for the interpreter.
+
+Bug: https://bugs.gentoo.org/790350
+Signed-off-by: Bernd Waibel <[email protected]>
+--- a/openvdb/openvdb/python/CMakeLists.txt
++++ b/openvdb/openvdb/python/CMakeLists.txt
+@@ -73,10 +73,7 @@ endfunction()
+ #   target but this was only added in CMake 3.15. See:
+ #      https://github.com/AcademySoftwareFoundation/openvdb/issues/886
+ set(OPENVDB_PYTHON_DEPS)
+-set(OPENVDB_PYTHON_REQUIRED_COMPONENTS Development)
+-if(NOT DEFINED PYOPENVDB_INSTALL_DIRECTORY)
+-    list(APPEND OPENVDB_PYTHON_REQUIRED_COMPONENTS Interpreter)
+-endif()
++set(OPENVDB_PYTHON_REQUIRED_COMPONENTS Development Interpreter)
+ 
+ if(${CMAKE_VERSION} VERSION_LESS 3.14)
+   find_package(Python QUIET COMPONENTS ${OPENVDB_PYTHON_REQUIRED_COMPONENTS})
+-- 
+2.34.1
+

diff --git a/media-gfx/openvdb/openvdb-8.2.0.ebuild 
b/media-gfx/openvdb/openvdb-8.2.0-r1.ebuild
similarity index 86%
rename from media-gfx/openvdb/openvdb-8.2.0.ebuild
rename to media-gfx/openvdb/openvdb-8.2.0-r1.ebuild
index 9b71b3a635df..1a4d9c0e36e9 100644
--- a/media-gfx/openvdb/openvdb-8.2.0.ebuild
+++ b/media-gfx/openvdb/openvdb-8.2.0-r1.ebuild
@@ -31,8 +31,6 @@ RDEPEND="
        dev-libs/log4cplus:=
        media-libs/glfw
        media-libs/glu
-       media-libs/ilmbase:=
-       media-libs/openexr:0=
        sys-libs/zlib:=
        x11-libs/libXcursor
        x11-libs/libXi
@@ -46,6 +44,10 @@ RDEPEND="
                        numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )
                ')
        )
+       utils? (
+               media-libs/ilmbase:=
+               media-libs/openexr:0=
+       )
        zlib? ( sys-libs/zlib )
 "
 
@@ -69,7 +71,8 @@ PATCHES=(
        "${FILESDIR}/${PN}-7.1.0-0001-Fix-multilib-header-source.patch"
        
"${FILESDIR}/${PN}-8.0.1-add-consistency-for-NumPy-find_package-call.patch"
        "${FILESDIR}/${PN}-8.1.0-glfw-libdir.patch"
-       
#"${FILESDIR}/${PN}-9.0.0-unconditionally-search-Python-interpreter.patch"
+       
"${FILESDIR}/${PN}-8.2.0-fix-finding-ilmbase-if-imath-and-ilmbase-are-installed.patch"
+       
"${FILESDIR}/${PN}-8.2.0-unconditionally-search-Python-interpreter.patch"
 )
 
 pkg_setup() {
@@ -93,11 +96,9 @@ src_configure() {
        local mycmakeargs=(
                -DCMAKE_INSTALL_DOCDIR="share/doc/${PF}/"
                -DOPENVDB_ABI_VERSION_NUMBER="${version}"
+               -DOPENVDB_BUILD_BINARIES=$(usex utils)
                -DOPENVDB_BUILD_DOCS=$(usex doc)
                -DOPENVDB_BUILD_UNITTESTS=$(usex test)
-               -DOPENVDB_BUILD_VDB_LOD=$(usex utils)
-               -DOPENVDB_BUILD_VDB_RENDER=$(usex utils)
-               -DOPENVDB_BUILD_VDB_VIEW=$(usex utils)
                -DOPENVDB_CORE_SHARED=ON
                -DOPENVDB_CORE_STATIC=$(usex static-libs)
                -DOPENVDB_ENABLE_RPATH=OFF
@@ -113,10 +114,19 @@ src_configure() {
        if use python; then
                mycmakeargs+=(
                        -DOPENVDB_BUILD_PYTHON_MODULE=ON
-                       -DUSE_NUMPY=$(usex numpy)
                        -DOPENVDB_BUILD_PYTHON_UNITTESTS=$(usex test)
+                       -DPYOPENVDB_INSTALL_DIRECTORY="$(python_get_sitedir)"
                        -DPython_EXECUTABLE="${PYTHON}"
                        -DPython_INCLUDE_DIR="$(python_get_includedir)"
+                       -DUSE_NUMPY=$(usex numpy)
+               )
+       fi
+
+       if use utils; then
+               mycmakeargs+=(
+                       -DOPENVDB_BUILD_VDB_LOD=ON
+                       -DOPENVDB_BUILD_VDB_RENDER=ON
+                       -DOPENVDB_BUILD_VDB_VIEW=ON
                )
        fi
 

Reply via email to