summaryrefslogtreecommitdiff
path: root/media-gfx/prusaslicer
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2020-12-18 11:06:49 +0000
committerV3n3RiX <venerix@redcorelinux.org>2020-12-18 11:06:49 +0000
commitab3da91fb6c91a9df52fff8f991570f456fd3c7a (patch)
treee8f3bfa2c6c3d20ec3b9c352c839e23949068b6b /media-gfx/prusaslicer
parent6abbf81ef2f298e3221ff5e67a1f3c5f23958212 (diff)
gentoo resync : 18.12.2020
Diffstat (limited to 'media-gfx/prusaslicer')
-rw-r--r--media-gfx/prusaslicer/Manifest7
-rw-r--r--media-gfx/prusaslicer/files/PrusaGcodeviewer.desktop9
-rw-r--r--media-gfx/prusaslicer/files/PrusaSlicer.desktop12
-rw-r--r--media-gfx/prusaslicer/files/prusaslicer-2.2.0-atomic.patch10
-rw-r--r--media-gfx/prusaslicer/files/prusaslicer-2.2.0-boost-1.73.patch60
-rw-r--r--media-gfx/prusaslicer/metadata.xml19
-rw-r--r--media-gfx/prusaslicer/prusaslicer-2.2.0.ebuild79
7 files changed, 196 insertions, 0 deletions
diff --git a/media-gfx/prusaslicer/Manifest b/media-gfx/prusaslicer/Manifest
new file mode 100644
index 000000000000..b3757fb66d09
--- /dev/null
+++ b/media-gfx/prusaslicer/Manifest
@@ -0,0 +1,7 @@
+AUX PrusaGcodeviewer.desktop 208 BLAKE2B e7d041508b4dfb155748319d3c166ed1ff891cc3cf05d748d5d4ef03e90100dbb4c48a5c8daa3c5e04ad98e578e34e433caa9a1b2a85000feb16d9804832a531 SHA512 6f69d47a0f6adf3912de2ce8766c74d7654d3f8442cd269b098769d186a2345cdc6da310f10f4568d2de5ea1633bab22ac05203488617fa2e906d6c25b539964
+AUX PrusaSlicer.desktop 401 BLAKE2B 1c9bded4dd9e5e0be33c1bfb66bf8b54adc7898595fb6064d81f30dab9de7b9d6fd406ee48d45cb0ba665b1a03d02035c164d82d5b7cf13ec088b02176989777 SHA512 0777e5eda98d9931f5b289187a144f217f1279af498d8563414fa1485a24eb466a1b801498ec9af652355206543ae4b41012ed8ad8a22577680b088c6c39cc5a
+AUX prusaslicer-2.2.0-atomic.patch 200 BLAKE2B c8a4f2e3ce1974dbc3a1aba5805910796f533e85040e9886b8e6c395ba95578ddf1910f0ae35f5625a73b2c063a58cfb33409489169231983a1dea5f10edbde5 SHA512 8da19e19b7027e4f77d19c10a40796e2a9bd4776820cf1adb134dc53a487edbe8a297ba6ebc92c04a419ff5d69d14a2e6fb74b2c2a05e7066a0346015a14582c
+AUX prusaslicer-2.2.0-boost-1.73.patch 2383 BLAKE2B f8d96296c7802747ccfcd80adf9e2c954a33add590bb6fff7ef3e2e7c5334970009c63cab7d84adb7e9e0cc3b07a04200f3ea4c2c5dd9a1e1ebb5fe33ceebdde SHA512 36c325ce60c682ce1f5aeef02fc0b457a1e3ce60a2bfcc09e9ce78fddc6ee3452d100ac2a13e1d7454bfd7484d1f1c8d24a95feaa845ca784081dfefd15b2cdc
+DIST prusaslicer-2.2.0.tar.gz 30811929 BLAKE2B cde004add53ee025728d566cb7331cb7b1eac5412e9ad3bee037d13277c24dcdc6024c91f09bb9ef0653a12a3ee7c5cb5cec21e2a00825d185472ea7036e08f5 SHA512 5c8dc5b581e04208a1ae53771ef2607da189ee85aadf501ce1480008f5a6ddb10bb528ddc2608d3f04acd26c583ff895ad4148d6a1397f002292e20098971e1d
+EBUILD prusaslicer-2.2.0.ebuild 1551 BLAKE2B 30358dfa7e6c94ec6f459e7aa3c13ad87345c202bf4981000e3a1be98b37aedf20447d2f3c689866db4dca9fbd9620fee54b93de1dc6a538e1050dda705f05f9 SHA512 afd638ff936b6133be74aa3d7b06f9c0e713bfd8f4ac48e836c9f372bf9367a8f9bab984bd35e262ed54a2ee468f4dc12d8b3b4a73b684719e494e0b304847b6
+MISC metadata.xml 830 BLAKE2B b0c07af4dcc135e6ce2a67137ff2373ca4f842ac1e2efdff44dad399c487b2d2c7e71bf9932a544d30bc5f0a1e5ccd64830645be647137dda0bb23d00c62575a SHA512 9441df6291bfc1f7c6c85479e8bbe14389e091a43f0bc2ac22eee68544f6868ebd0eb342c7b79316809d0bde1b15684c9ea59cd57252b59643bb735e0b87422c
diff --git a/media-gfx/prusaslicer/files/PrusaGcodeviewer.desktop b/media-gfx/prusaslicer/files/PrusaGcodeviewer.desktop
new file mode 100644
index 000000000000..4b73cc905c6c
--- /dev/null
+++ b/media-gfx/prusaslicer/files/PrusaGcodeviewer.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Prusa GCode viewer
+Exec=prusa-slicer --gcodeviewer %F
+Icon=PrusaSlicer
+Terminal=false
+Type=Application
+MimeType=text/x.gcode;
+Categories=Graphics;3DGraphics;
+Keywords=3D;Printing;Slicer;
diff --git a/media-gfx/prusaslicer/files/PrusaSlicer.desktop b/media-gfx/prusaslicer/files/PrusaSlicer.desktop
new file mode 100644
index 000000000000..dae507b54abb
--- /dev/null
+++ b/media-gfx/prusaslicer/files/PrusaSlicer.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Name=PrusaSlicer
+GenericName=3D Printing Software
+Icon=PrusaSlicer
+Exec=prusa-slicer %F
+Terminal=false
+Type=Application
+MimeType=model/stl;application/vnd.ms-3mfdocument;application/prs.wavefront-obj;application/x-amf;
+Categories=Graphics;3DGraphics;Engineering;
+Keywords=3D;Printing;Slicer;slice;3D;printer;convert;gcode;stl;obj;amf;SLA
+StartupNotify=false
+StartupWMClass=prusa-slicer \ No newline at end of file
diff --git a/media-gfx/prusaslicer/files/prusaslicer-2.2.0-atomic.patch b/media-gfx/prusaslicer/files/prusaslicer-2.2.0-atomic.patch
new file mode 100644
index 000000000000..4319ad0f1463
--- /dev/null
+++ b/media-gfx/prusaslicer/files/prusaslicer-2.2.0-atomic.patch
@@ -0,0 +1,10 @@
+--- a/src/slic3r/GUI/Mouse3DController.hpp
++++ b/src/slic3r/GUI/Mouse3DController.hpp
+@@ -8,6 +8,7 @@
+
+ #include "hidapi.h"
+
++#include <atomic>
+ #include <queue>
+ #include <thread>
+ #include <vector>
diff --git a/media-gfx/prusaslicer/files/prusaslicer-2.2.0-boost-1.73.patch b/media-gfx/prusaslicer/files/prusaslicer-2.2.0-boost-1.73.patch
new file mode 100644
index 000000000000..50abea11b328
--- /dev/null
+++ b/media-gfx/prusaslicer/files/prusaslicer-2.2.0-boost-1.73.patch
@@ -0,0 +1,60 @@
+--- a/src/admesh/stlinit.cpp
++++ b/src/admesh/stlinit.cpp
+@@ -28,7 +28,6 @@
+
+ #include <boost/log/trivial.hpp>
+ #include <boost/nowide/cstdio.hpp>
+-#include <boost/detail/endian.hpp>
+
+ #include "stl.h"
+
+@@ -36,9 +35,9 @@
+ #error "SEEK_SET not defined"
+ #endif
+
+-#ifndef BOOST_LITTLE_ENDIAN
++#if __BYTE_ORDER__ != __ORDER_LITTLE_ENDIAN__
+ extern void stl_internal_reverse_quads(char *buf, size_t cnt);
+-#endif /* BOOST_LITTLE_ENDIAN */
++#endif /* __BYTE_ORDER__ != __ORDER_LITTLE_ENDIAN__ */
+
+ static FILE* stl_open_count_facets(stl_file *stl, const char *file)
+ {
+@@ -89,10 +88,10 @@
+ // Read the int following the header. This should contain # of facets.
+ uint32_t header_num_facets;
+ bool header_num_faces_read = fread(&header_num_facets, sizeof(uint32_t), 1, fp) != 0;
+-#ifndef BOOST_LITTLE_ENDIAN
++#if __BYTE_ORDER__ != __ORDER_LITTLE_ENDIAN__
+ // Convert from little endian to big endian.
+ stl_internal_reverse_quads((char*)&header_num_facets, 4);
+-#endif /* BOOST_LITTLE_ENDIAN */
++#endif /* __BYTE_ORDER__ != __ORDER_LITTLE_ENDIAN__ */
+ if (! header_num_faces_read || num_facets != header_num_facets)
+ BOOST_LOG_TRIVIAL(info) << "stl_open_count_facets: Warning: File size doesn't match number of facets in the header: " << file;
+ }
+@@ -158,10 +157,10 @@
+ // Read a single facet from a binary .STL file. We assume little-endian architecture!
+ if (fread(&facet, 1, SIZEOF_STL_FACET, fp) != SIZEOF_STL_FACET)
+ return false;
+-#ifndef BOOST_LITTLE_ENDIAN
++#if __BYTE_ORDER__ != __ORDER_LITTLE_ENDIAN__
+ // Convert the loaded little endian data to big endian.
+ stl_internal_reverse_quads((char*)&facet, 48);
+-#endif /* BOOST_LITTLE_ENDIAN */
++#endif /* __BYTE_ORDER__ != __ORDER_LITTLE_ENDIAN__ */
+ } else {
+ // Read a single facet from an ASCII .STL file
+ // skip solid/endsolid
+
+--- a/CMakeLists.txt (revision 3b2c51fd5ab04a72592bfdba1cd39cd6298b66c2)
++++ b/CMakeLists.txt (date 1607811414000)
+@@ -260,7 +260,7 @@
+ # set(Boost_COMPILER "-mgw81")
+ if(NOT WIN32)
+ # boost::process was introduced first in version 1.64.0
+- set(MINIMUM_BOOST_VERSION "1.64.0")
++ set(MINIMUM_BOOST_VERSION "1.72.0")
+ endif()
+ set(_boost_components "system;filesystem;thread;log;locale;regex;chrono;atomic;date_time")
+ find_package(Boost ${MINIMUM_BOOST_VERSION} REQUIRED COMPONENTS ${_boost_components})
diff --git a/media-gfx/prusaslicer/metadata.xml b/media-gfx/prusaslicer/metadata.xml
new file mode 100644
index 000000000000..0d7a4d353499
--- /dev/null
+++ b/media-gfx/prusaslicer/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>3dprint@gentoo.org</email>
+ <name>Gentoo 3D Printer Project</name>
+ </maintainer>
+ <longdescription>
+ PrusaSlicer takes 3D models (STL, OBJ, AMF) and converts them into G-code instructions for FFF printers or PNG
+ layers for mSLA 3D printers. It's compatible with any modern printer based on the RepRap toolchain, including
+ all those based on the Marlin, Prusa, Sprinter and Repetier firmware. It also works with Mach3, LinuxCNC and
+ Machinekit controllers.
+
+ PrusaSlicer is based on Slic3r by Alessandro Ranellucci and the RepRap community.
+ </longdescription>
+ <upstream>
+ <remote-id type="github">prusa3d/PrusaSlicer</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/media-gfx/prusaslicer/prusaslicer-2.2.0.ebuild b/media-gfx/prusaslicer/prusaslicer-2.2.0.ebuild
new file mode 100644
index 000000000000..24f2f870cb8d
--- /dev/null
+++ b/media-gfx/prusaslicer/prusaslicer-2.2.0.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+WX_GTK_VER="3.0-gtk3"
+
+inherit cmake desktop wxwidgets xdg-utils
+
+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 CC-BY-3.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="gui test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ dev-cpp/eigen:3
+ dev-cpp/tbb
+ >=dev-libs/boost-1.73.0[threads]
+ dev-libs/cereal
+ dev-libs/expat
+ dev-libs/miniz
+ media-libs/glew:0=
+ media-libs/qhull
+ >=media-gfx/openvdb-5.0.0
+ net-misc/curl
+ >=sci-mathematics/cgal-5.0
+ sci-libs/libigl
+ sci-libs/nlopt
+ sys-libs/zlib
+ x11-libs/wxGTK:${WX_GTK_VER}[X]
+ "
+DEPEND="${RDEPEND}"
+
+S="${WORKDIR}/PrusaSlicer-version_${PV}"
+PATCHES=(
+ "${FILESDIR}/${P}-atomic.patch"
+ "${FILESDIR}/${P}-boost-1.73.patch"
+)
+
+src_prepare() {
+ setup-wxwidgets
+ cmake_src_prepare
+}
+
+src_configure() {
+ CMAKE_BUILD_TYPE=Release
+
+ local mycmakeargs=(
+ -DSLIC3R_BUILD_TESTS=$(usex test)
+ -DSLIC3R_FHS=1
+ -DSLIC3R_GUI=$(usex gui)
+ -DSLIC3R_PCH=0
+ -SLIC3R_STATIC=0
+ -DSLIC3R_WX_STABLE=1
+ )
+
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+
+ doicon resources/icons/PrusaSlicer.png || die
+ domenu "${FILESDIR}/PrusaGcodeviewer.desktop" || die
+ domenu "${FILESDIR}/PrusaSlicer.desktop" || die
+}
+
+pkg_postinst() {
+ xdg_mimeinfo_database_update
+ xdg_desktop_database_update
+}