summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2022-02-12 20:34:43 +0000
committerSam James <sam@gentoo.org>2022-02-15 19:50:00 +0000
commitdff8e7cbc3fb7966f14fd783be2cb9bab3dc651a (patch)
tree139b1626c234e16253d99d75b3cf41099bbf4ccd /media-gfx/prusaslicer
parentmedia-libs/osl: adjust to unslotted OpenEXR (diff)
downloadgentoo-dff8e7cbc3fb7966f14fd783be2cb9bab3dc651a.tar.gz
gentoo-dff8e7cbc3fb7966f14fd783be2cb9bab3dc651a.tar.bz2
gentoo-dff8e7cbc3fb7966f14fd783be2cb9bab3dc651a.zip
media-gfx/prusaslicer: support OpenEXR 3 / imath
Bug: https://bugs.gentoo.org/833158 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'media-gfx/prusaslicer')
-rw-r--r--media-gfx/prusaslicer/files/prusaslicer-2.4.0-openexr-3.patch76
-rw-r--r--media-gfx/prusaslicer/prusaslicer-2.4.0-r2.ebuild78
2 files changed, 154 insertions, 0 deletions
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
+}