commit:     dff8e7cbc3fb7966f14fd783be2cb9bab3dc651a
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 12 20:34:43 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Feb 15 19:50:00 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dff8e7cb

media-gfx/prusaslicer: support OpenEXR 3 / imath

Bug: https://bugs.gentoo.org/833158
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/prusaslicer-2.4.0-openexr-3.patch        | 76 +++++++++++++++++++++
 media-gfx/prusaslicer/prusaslicer-2.4.0-r2.ebuild  | 78 ++++++++++++++++++++++
 2 files changed, 154 insertions(+)

diff --git a/media-gfx/prusaslicer/files/prusaslicer-2.4.0-openexr-3.patch 
b/media-gfx/prusaslicer/files/prusaslicer-2.4.0-openexr-3.patch
new file mode 100644
index 000000000000..cf22b66c7d69
--- /dev/null
+++ b/media-gfx/prusaslicer/files/prusaslicer-2.4.0-openexr-3.patch
@@ -0,0 +1,76 @@
+https://src.fedoraproject.org/rpms/prusa-slicer/raw/rawhide/f/prusa-slicer-openexr3.patch
+--- a/cmake/modules/FindOpenVDB.cmake
++++ b/cmake/modules/FindOpenVDB.cmake
+@@ -326,28 +326,10 @@ macro(just_fail msg)
+   return()
+ endmacro()
+ 
+-find_package(IlmBase QUIET COMPONENTS Half)
+-if(NOT IlmBase_FOUND)
+-  pkg_check_modules(IlmBase QUIET IlmBase)
+-endif()
+-if (IlmBase_FOUND AND NOT TARGET IlmBase::Half)
+-  message(STATUS "Falling back to IlmBase found by pkg-config...")
+-
+-  find_library(IlmHalf_LIBRARY NAMES Half)
+-  if(IlmHalf_LIBRARY-NOTFOUND OR NOT IlmBase_INCLUDE_DIRS)
+-    just_fail("IlmBase::Half can not be found!")
+-  endif()
+-  
+-  add_library(IlmBase::Half UNKNOWN IMPORTED)
+-  set_target_properties(IlmBase::Half PROPERTIES
+-    IMPORTED_LOCATION "${IlmHalf_LIBRARY}"
+-    INTERFACE_INCLUDE_DIRECTORIES "${IlmBase_INCLUDE_DIRS}")
+-elseif(NOT IlmBase_FOUND)
+-  just_fail("IlmBase::Half can not be found!")
+-endif()
+ find_package(TBB ${_quiet} ${_required} COMPONENTS tbb)
+ find_package(ZLIB ${_quiet} ${_required})
+ find_package(Boost ${_quiet} ${_required} COMPONENTS iostreams system )
++find_package(Imath CONFIG)
+ 
+ # Use GetPrerequisites to see which libraries this OpenVDB lib has linked to
+ # which we can query for optional deps. This basically runs ldd/otoll/objdump
+@@ -398,7 +380,7 @@ foreach(PREREQUISITE ${_OPENVDB_PREREQUISITE_LIST})
+     set(OpenVDB_USES_LOG4CPLUS ON)
+   endif()
+ 
+-  string(FIND ${PREREQUISITE} "IlmImf" _HAS_DEP)
++  string(FIND ${PREREQUISITE} "OpenEXR" _HAS_DEP)
+   if(NOT ${_HAS_DEP} EQUAL -1)
+     set(OpenVDB_USES_ILM ON)
+   endif()
+@@ -429,11 +411,7 @@ if(OpenVDB_USES_LOG4CPLUS)
+   find_package(Log4cplus ${_quiet} ${_required})
+ endif()
+ 
+-if(OpenVDB_USES_ILM)
+-  find_package(IlmBase ${_quiet} ${_required})
+-endif()
+-
+-if(OpenVDB_USES_EXR)
++if(OpenVDB_USES_ILM OR OpenVDB_USES_EXR)
+   find_package(OpenEXR ${_quiet} ${_required})
+ endif()
+ 
+@@ -450,7 +428,7 @@ endif()
+ set(_OPENVDB_VISIBLE_DEPENDENCIES
+   Boost::iostreams
+   Boost::system
+-  IlmBase::Half
++  Imath::Imath
+ )
+ 
+ set(_OPENVDB_DEFINITIONS)
+@@ -460,10 +438,7 @@ endif()
+ 
+ if(OpenVDB_USES_EXR)
+   list(APPEND _OPENVDB_VISIBLE_DEPENDENCIES
+-    IlmBase::IlmThread
+-    IlmBase::Iex
+-    IlmBase::Imath
+-    OpenEXR::IlmImf
++    OpenEXR::OpenEXR
+   )
+   list(APPEND _OPENVDB_DEFINITIONS "-DOPENVDB_TOOLS_RAYTRACER_USE_EXR")
+ endif()

diff --git a/media-gfx/prusaslicer/prusaslicer-2.4.0-r2.ebuild 
b/media-gfx/prusaslicer/prusaslicer-2.4.0-r2.ebuild
new file mode 100644
index 000000000000..c6e7e07d2d27
--- /dev/null
+++ b/media-gfx/prusaslicer/prusaslicer-2.4.0-r2.ebuild
@@ -0,0 +1,78 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+WX_GTK_VER="3.0-gtk3"
+
+inherit cmake desktop wxwidgets xdg
+
+MY_PN="PrusaSlicer"
+
+DESCRIPTION="A mesh slicer to generate G-code for fused-filament-fabrication 
(3D printers)"
+HOMEPAGE="https://www.prusa3d.com/prusaslicer/";
+SRC_URI="https://github.com/prusa3d/${MY_PN}/archive/version_${PV}.tar.gz -> 
${P}.tar.gz"
+
+LICENSE="AGPL-3 Boost-1.0 GPL-2 LGPL-3 MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+       dev-cpp/eigen:3
+       >=dev-cpp/tbb-2021.4.0:=
+       >=dev-libs/boost-1.73.0:=[nls,threads(+)]
+       dev-libs/cereal
+       dev-libs/expat
+       dev-libs/glib:2
+       dev-libs/gmp:=
+       dev-libs/mpfr:=
+       dev-libs/imath:=
+       >=media-gfx/openvdb-8.2:=
+       net-misc/curl
+       media-libs/glew:0=
+       media-libs/libpng:0=
+       media-libs/qhull:=
+       sci-libs/libigl
+       sci-libs/nlopt
+       >=sci-mathematics/cgal-5.0:=
+       sys-apps/dbus
+       sys-libs/zlib:=
+       virtual/glu
+       virtual/opengl
+       x11-libs/gtk+:3
+       x11-libs/wxGTK:${WX_GTK_VER}[X,opengl]
+"
+DEPEND="${RDEPEND}
+       media-libs/qhull[static-libs]
+"
+
+S="${WORKDIR}/${MY_PN}-version_${PV}"
+
+src_prepare() {
+       sed -i -e 
's/PrusaSlicer-${SLIC3R_VERSION}+UNKNOWN/PrusaSlicer-${SLIC3R_VERSION}+Gentoo/g'
 version.inc || die
+       cmake_src_prepare
+}
+
+src_configure() {
+       CMAKE_BUILD_TYPE="Release"
+
+       setup-wxwidgets
+
+       local mycmakeargs=(
+               -DOPENVDB_FIND_MODULE_PATH="/usr/$(get_libdir)/cmake/OpenVDB"
+
+               -DSLIC3R_BUILD_TESTS=$(usex test)
+               -DSLIC3R_FHS=ON
+               -DSLIC3R_GTK=3
+               -DSLIC3R_GUI=ON
+               -DSLIC3R_PCH=OFF
+               -DSLIC3R_STATIC=OFF
+               -DSLIC3R_WX_STABLE=ON
+               -Wno-dev
+       )
+
+       cmake_src_configure
+}

Reply via email to