summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--media-gfx/prusaslicer/Manifest1
-rw-r--r--media-gfx/prusaslicer/files/prusaslicer-2.8.1-fstream.patch13
-rw-r--r--media-gfx/prusaslicer/prusaslicer-2.8.1.ebuild113
3 files changed, 117 insertions, 10 deletions
diff --git a/media-gfx/prusaslicer/Manifest b/media-gfx/prusaslicer/Manifest
index 1d0a10b8a015..a1d14e59d466 100644
--- a/media-gfx/prusaslicer/Manifest
+++ b/media-gfx/prusaslicer/Manifest
@@ -1 +1,2 @@
DIST prusaslicer-2.8.0.tar.gz 69806919 BLAKE2B b87c63ae411814dbffc8ae96c243bf06018d600db732ef32f7c766ce6bdf156b0aca6da90868482f39b9c6421c6a386bccc9f69e23218dadc07f1bcdb21b9793 SHA512 d98b43e9e1a6da9cbab46b2564da02fc0f8521d84a4df915d0ffd0878ee1a25afebe7078e38b124ec8565782379c51a7f9564462652ef1a7d9819d29297c1937
+DIST prusaslicer-2.8.1.tar.gz 69409077 BLAKE2B dd3ee810ea00d03f1790386d1fe1fd044c038429700cd33f21299abdf5def12902f7a07c23aa3d2a6cfc5e18d1e2534080889d4a33beefb493a504978a742453 SHA512 0471fa579a494d66e6b49c0bc1a9fa91f3a5f9147d8b7fa8133c6f03391f8daddddb19ed222d1be44f6f22e2de3021f3fb839331e3c3ccdf5643caa8a61d6912
diff --git a/media-gfx/prusaslicer/files/prusaslicer-2.8.1-fstream.patch b/media-gfx/prusaslicer/files/prusaslicer-2.8.1-fstream.patch
index b4a92de67ab6..f550c53d3f42 100644
--- a/media-gfx/prusaslicer/files/prusaslicer-2.8.1-fstream.patch
+++ b/media-gfx/prusaslicer/files/prusaslicer-2.8.1-fstream.patch
@@ -11,7 +11,7 @@
--- a/src/slic3r/GUI/PresetArchiveDatabase.cpp
+++ b/src/slic3r/GUI/PresetArchiveDatabase.cpp
-@@ -514,7 +514,7 @@ void PresetArchiveDatabase::load_app_manifest_json()
+@@ -515,7 +515,7 @@ void PresetArchiveDatabase::load_app_manifest_json()
if (!fs::exists(path, ec) || ec) {
copy_initial_manifest();
}
@@ -20,7 +20,7 @@
std::string data;
if (file.is_open()) {
std::string line;
-@@ -681,7 +681,7 @@ void PresetArchiveDatabase::save_app_manifest_json() const
+@@ -682,7 +682,7 @@ void PresetArchiveDatabase::save_app_manifest_json() const
data += "]";
std::string path = get_stored_manifest_path().string();
@@ -29,16 +29,9 @@
if (file.is_open()) {
file << data;
file.close();
-@@ -916,4 +916,4 @@ void PresetArchiveDatabase::sync_blocking()
- read_server_manifest(std::move(manifest));
- }
-
--}} // Slic3r::GUI
-\ No newline at end of file
-+}} // Slic3r::GUI
--- a/src/slic3r/Utils/Http.cpp
+++ b/src/slic3r/Utils/Http.cpp
-@@ -301,7 +301,7 @@ void Http::priv::form_add_file(const char *name, const fs::path &path, const cha
+@@ -302,7 +302,7 @@ void Http::priv::form_add_file(const char *name, const fs::path &path, const cha
//FIXME may throw! Is the caller aware of it?
void Http::priv::set_post_body(const fs::path &path)
{
diff --git a/media-gfx/prusaslicer/prusaslicer-2.8.1.ebuild b/media-gfx/prusaslicer/prusaslicer-2.8.1.ebuild
new file mode 100644
index 000000000000..fbf13e9d7d66
--- /dev/null
+++ b/media-gfx/prusaslicer/prusaslicer-2.8.1.ebuild
@@ -0,0 +1,113 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+WX_GTK_VER="3.2-gtk3"
+MY_PN="PrusaSlicer"
+MY_PV="$(ver_rs 3 -)"
+
+inherit cmake wxwidgets xdg
+
+if [[ ${PV} == *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/prusa3d/prusaslicer.git"
+else
+ SRC_URI="https://github.com/prusa3d/PrusaSlicer/archive/refs/tags/version_${MY_PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm64 ~x86"
+ S="${WORKDIR}/${MY_PN}-version_${MY_PV}"
+fi
+
+DESCRIPTION="A mesh slicer to generate G-code for fused-filament-fabrication (3D printers)"
+HOMEPAGE="https://www.prusa3d.com/prusaslicer/"
+
+LICENSE="AGPL-3 Boost-1.0 GPL-2 LGPL-3 MIT"
+SLOT="0"
+IUSE="test"
+
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ dev-cpp/eigen:3
+ dev-cpp/tbb:=
+ dev-libs/boost:=[nls]
+ dev-libs/cereal
+ dev-libs/expat
+ dev-libs/glib:2
+ dev-libs/gmp:=
+ dev-libs/mpfr:=
+ media-gfx/openvdb:=
+ media-gfx/libbgcode
+ net-misc/curl[adns]
+ media-libs/glew:0=
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:0=
+ media-libs/qhull:=
+ sci-libs/libigl
+ sci-libs/nlopt
+ sci-libs/opencascade:=
+ sci-mathematics/cgal:=
+ sys-apps/dbus
+ sys-libs/zlib:=
+ virtual/opengl
+ x11-libs/gtk+:3
+ >=x11-libs/wxGTK-3.2.2.1-r3:${WX_GTK_VER}[X,opengl,webkit]
+ media-libs/nanosvg:=
+"
+DEPEND="${RDEPEND}
+ media-libs/qhull[static-libs]
+ test? ( =dev-cpp/catch-2* )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2.6.0-dont-force-link-to-wayland-and-x11.patch"
+ "${FILESDIR}/${PN}-2.8.0-missing-includes.patch"
+ "${FILESDIR}/${PN}-2.8.0-wxwidgets-3.2.4.patch"
+ "${FILESDIR}/${PN}-2.8.1-fixed-linking.patch"
+ "${FILESDIR}/${PN}-2.8.1-cgal-6.0.patch"
+ "${FILESDIR}/${PN}-2.8.1-fstream.patch"
+)
+
+src_prepare() {
+ if has_version ">=sci-libs/opencascade-7.8.0"; then
+ eapply "${FILESDIR}/prusaslicer-2.8.1-opencascade-7.8.0.patch"
+ fi
+
+ sed -i -e 's/PrusaSlicer-${SLIC3R_VERSION}+UNKNOWN/PrusaSlicer-${SLIC3R_VERSION}+Gentoo/g' version.inc || die
+
+ sed -i -e 's/find_package(OpenCASCADE 7.6.[0-9] REQUIRED)/find_package(OpenCASCADE REQUIRED)/g' \
+ src/occt_wrapper/CMakeLists.txt || die
+
+ find . -type f \( -name '*.cpp' -o -name '*.h' -o -name '*.hpp' \) -exec \
+ sed -i 's|#include <Eigen/|#include <eigen3/Eigen/|g; s|#include <unsupported/Eigen/|#include <eigen3/unsupported/Eigen/|g' {} + || 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
+}
+
+src_test() {
+ CMAKE_SKIP_TESTS=(
+ "^libslic3r_tests$"
+ )
+ cmake_src_test
+}