summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDennis Lamm <expeditioneer@gentoo.org>2020-12-04 22:41:40 +0100
committerDennis Lamm <expeditioneer@gentoo.org>2020-12-06 13:32:36 +0100
commit2af1afdd76734d65c950a5ead00e81674fb95cca (patch)
tree5d98ad4bbe94bda4ef6714562a678c662cd3e731 /media-gfx
parentmedia-gfx/slic3r: drop old (diff)
downloadgentoo-2af1afdd76734d65c950a5ead00e81674fb95cca.tar.gz
gentoo-2af1afdd76734d65c950a5ead00e81674fb95cca.tar.bz2
gentoo-2af1afdd76734d65c950a5ead00e81674fb95cca.zip
media-gfx/slic3r-1.3.0: fixed boost 1.73 build
also use system clipper Bug: https://bugs.gentoo.org/722308 Signed-off-by: Dennis Lamm <expeditioneer@gentoo.org>
Diffstat (limited to 'media-gfx')
-rw-r--r--media-gfx/slic3r/files/slic3r-1.3.0-boost-1.73.patch146
-rw-r--r--media-gfx/slic3r/files/slic3r-1.3.0-use-system-clipper.patch44
-rw-r--r--media-gfx/slic3r/files/slic3r-1.3.0-wayland.patch10
-rw-r--r--media-gfx/slic3r/slic3r-1.3.0-r3.ebuild (renamed from media-gfx/slic3r/slic3r-1.3.0-r2.ebuild)38
4 files changed, 217 insertions, 21 deletions
diff --git a/media-gfx/slic3r/files/slic3r-1.3.0-boost-1.73.patch b/media-gfx/slic3r/files/slic3r-1.3.0-boost-1.73.patch
new file mode 100644
index 000000000000..6b710a18f3af
--- /dev/null
+++ b/media-gfx/slic3r/files/slic3r-1.3.0-boost-1.73.patch
@@ -0,0 +1,146 @@
+--- a/xs/src/boost/nowide/cstdlib.hpp
++++ b/xs/src/boost/nowide/cstdlib.hpp
+@@ -8,7 +8,7 @@
+ #ifndef BOOST_NOWIDE_CSTDLIB_HPP_INCLUDED
+ #define BOOST_NOWIDE_CSTDLIB_HPP_INCLUDED
+
+-#include <boost/nowide/cenv.hpp>
++#include <boost/nowide/cstdlib.hpp>
+ #include <boost/nowide/system.hpp>
+
+ #endif
+--- a/xs/src/admesh/stl.h
++++ b/xs/src/admesh/stl.h
+@@ -26,11 +26,6 @@
+ #include <stdio.h>
+ #include <stdint.h>
+ #include <stddef.h>
+-#include <boost/detail/endian.hpp>
+-
+-#ifndef BOOST_LITTLE_ENDIAN
+-#error "admesh works correctly on little endian machines only!"
+-#endif
+
+ #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
+ #include "windows.h"
+
+--- a/xs/src/libslic3r/PrintObject.cpp
++++ b/xs/src/libslic3r/PrintObject.cpp
+@@ -2,11 +2,14 @@
+ #include "BoundingBox.hpp"
+ #include "ClipperUtils.hpp"
+ #include "Geometry.hpp"
++#include <boost/bind/bind.hpp>
+ #include <algorithm>
+ #include <vector>
+
+ namespace Slic3r {
+
++using boost::placeholders::_1;
++
+ PrintObject::PrintObject(Print* print, ModelObject* model_object, const BoundingBoxf3 &modobj_bbox)
+ : layer_height_spline(model_object->layer_height_spline),
+ typed_slices(false),
+--- a/xs/src/libslic3r/GCodeSender.hpp
++++ b/xs/src/libslic3r/GCodeSender.hpp
+@@ -7,13 +7,17 @@
+ #include <string>
+ #include <vector>
+ #include <boost/asio.hpp>
+-#include <boost/bind.hpp>
++#include <boost/bind/bind.hpp>
++#include <boost/core/noncopyable.hpp>
+ #include <boost/thread.hpp>
+
+ namespace Slic3r {
+
+ namespace asio = boost::asio;
+
++using boost::placeholders::_1;
++using boost::placeholders::_2;
++
+ class GCodeSender : private boost::noncopyable {
+ public:
+ GCodeSender();
+--- a/xs/src/libslic3r/TriangleMesh.cpp
++++ b/xs/src/libslic3r/TriangleMesh.cpp
+@@ -14,6 +14,7 @@
+ #include <stdexcept>
+ #include <boost/config.hpp>
+ #include <boost/nowide/convert.hpp>
++#include <boost/bind/bind.hpp>
+
+ #ifdef SLIC3R_DEBUG
+ #include "SVG.hpp"
+@@ -21,6 +22,8 @@
+
+ namespace Slic3r {
+
++using boost::placeholders::_1;
++
+ TriangleMesh::TriangleMesh()
+ : repaired(false)
+ {
+--- a/xs/src/libslic3r/Config.cpp
++++ b/xs/src/libslic3r/Config.cpp
+@@ -14,6 +14,7 @@
+ #include <boost/foreach.hpp>
+ #include <boost/lexical_cast.hpp>
+ #include <boost/nowide/cenv.hpp>
++#include <boost/nowide/cstdlib.hpp>
+ #include <boost/nowide/fstream.hpp>
+ #include <boost/property_tree/ini_parser.hpp>
+ #include <boost/property_tree/ptree.hpp>
+--- a/xs/src/libslic3r/SLAPrint.cpp
++++ b/xs/src/libslic3r/SLAPrint.cpp
+@@ -7,9 +7,12 @@
+ #include <iostream>
+ #include <complex>
+ #include <cstdio>
++#include <boost/bind/bind.hpp>
+
+ namespace Slic3r {
+
++using boost::placeholders::_1;
++
+ void
+ SLAPrint::slice()
+ {
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -22,7 +22,7 @@
+ set(Boost_USE_STATIC_LIBS ON)
+ set(Boost_USE_STATIC_RUNTIME ON)
+ set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
+-find_package(Boost COMPONENTS system thread filesystem)
++find_package(Boost MODULE REQUIRED)
+
+ set(LIBDIR ${CMAKE_CURRENT_SOURCE_DIR}/../xs/src/)
+
+--- a/xs/src/libslic3r/GCodeTimeEstimator.cpp
++++ b/xs/src/libslic3r/GCodeTimeEstimator.cpp
+@@ -1,9 +1,12 @@
+ #include "GCodeTimeEstimator.hpp"
+-#include <boost/bind.hpp>
++#include <boost/bind/bind.hpp>
+ #include <cmath>
+
+ namespace Slic3r {
+
++using boost::placeholders::_1;
++using boost::placeholders::_2;
++
+ void
+ GCodeTimeEstimator::parse(const std::string &gcode)
+ {
+--- a/xs/Build.PL
++++ b/xs/Build.PL
+@@ -142,7 +142,7 @@
+ }
+ # In order to generate the -l switches we need to know how Boost libraries are named
+ my $have_boost = 0;
+-my @boost_libraries = qw(system thread filesystem); # we need these
++my @boost_libraries = qw(system thread filesystem nowide); # we need these
+ # check without explicit lib path (works on Linux)
+ if (! $mswin) {
+ $have_boost = 1
diff --git a/media-gfx/slic3r/files/slic3r-1.3.0-use-system-clipper.patch b/media-gfx/slic3r/files/slic3r-1.3.0-use-system-clipper.patch
new file mode 100644
index 000000000000..9f9a5ef2fbd0
--- /dev/null
+++ b/media-gfx/slic3r/files/slic3r-1.3.0-use-system-clipper.patch
@@ -0,0 +1,44 @@
+--- a/xs/src/libslic3r/ClipperUtils.hpp
++++ b/xs/src/libslic3r/ClipperUtils.hpp
+@@ -2,7 +2,7 @@
+ #define slic3r_ClipperUtils_hpp_
+
+ #include <libslic3r.h>
+-#include "clipper.hpp"
++#include <polyclipping/clipper.hpp>
+ #include "ExPolygon.hpp"
+ #include "Polygon.hpp"
+ #include "Surface.hpp"
+--- a/xs/src/libslic3r/Geometry.cpp
++++ b/xs/src/libslic3r/Geometry.cpp
+@@ -3,7 +3,7 @@
+ #include "ExPolygon.hpp"
+ #include "Line.hpp"
+ #include "PolylineCollection.hpp"
+-#include "clipper.hpp"
++#include <polyclipping/clipper.hpp>
+ #include <algorithm>
+ #include <cassert>
+ #include <cmath>
+--- a/xs/src/libslic3r/SVG.hpp
++++ b/xs/src/libslic3r/SVG.hpp
+@@ -2,7 +2,7 @@
+ #define slic3r_SVG_hpp_
+
+ #include "libslic3r.h"
+-#include "clipper.hpp"
++#include <polyclipping/clipper.hpp>
+ #include "ExPolygon.hpp"
+ #include "Line.hpp"
+ #include "TriangleMesh.hpp"
+--- a/xs/xsp/Clipper.xsp
++++ b/xs/xsp/Clipper.xsp
+@@ -2,7 +2,7 @@
+
+ %{
+ #include <xsinit.h>
+-#include "clipper.hpp"
++#include <polyclipping/clipper.hpp>
+ #include "libslic3r/ClipperUtils.hpp"
+ %}
+
diff --git a/media-gfx/slic3r/files/slic3r-1.3.0-wayland.patch b/media-gfx/slic3r/files/slic3r-1.3.0-wayland.patch
new file mode 100644
index 000000000000..d2dea0208d86
--- /dev/null
+++ b/media-gfx/slic3r/files/slic3r-1.3.0-wayland.patch
@@ -0,0 +1,10 @@
+--- a/slic3r.pl
++++ b/slic3r.pl
+@@ -20,6 +20,7 @@ use Time::HiRes qw(gettimeofday tv_interval);
+ $|++;
+ binmode STDOUT, ':utf8';
+ binmode STDERR, ':utf8';
++$ENV{GDK_BACKEND} = 'x11';
+
+ our %opt = ();
+ my %cli_options = ();
diff --git a/media-gfx/slic3r/slic3r-1.3.0-r2.ebuild b/media-gfx/slic3r/slic3r-1.3.0-r3.ebuild
index 60c8950aab45..5917a9210b8d 100644
--- a/media-gfx/slic3r/slic3r-1.3.0-r2.ebuild
+++ b/media-gfx/slic3r/slic3r-1.3.0-r3.ebuild
@@ -1,9 +1,9 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=7
-inherit eutils flag-o-matic perl-module
+inherit desktop eutils perl-module
DESCRIPTION="A mesh slicer to generate G-code for fused-filament-fabrication (3D printers)"
HOMEPAGE="https://slic3r.org"
@@ -17,7 +17,7 @@ RESTRICT="!test? ( test )"
# check Build.PL for dependencies
RDEPEND="!=dev-lang/perl-5.16*
- >=dev-libs/boost-1.55[threads]
+ >=dev-libs/boost-1.73[threads]
dev-perl/Class-XSAccessor
dev-perl/Devel-CheckLib
dev-perl/Devel-Size
@@ -53,6 +53,7 @@ RDEPEND="!=dev-lang/perl-5.16*
x11-libs/libXmu
)"
DEPEND="${RDEPEND}
+ dev-libs/clipper
dev-perl/Devel-CheckLib
>=dev-perl/ExtUtils-CppGuess-0.70.0
>=dev-perl/ExtUtils-Typemaps-Default-1.50.0
@@ -64,38 +65,33 @@ DEPEND="${RDEPEND}
test? ( virtual/perl-Test-Harness
virtual/perl-Test-Simple )"
-S="${WORKDIR}/Slic3r-${PV}/xs"
+S="${WORKDIR}/Slic3r-${PV}"
+PERL_S="${S}/xs"
-pkg_pretend() {
- einfo "Checking for -std=c++11 support in compiler"
- test-flags-CXX -std=c++11 > /dev/null || die
-}
+PATCHES=(
+ "${FILESDIR}/${P}-boost-1.73.patch"
+ "${FILESDIR}/${P}-no-locallib.patch"
+ "${FILESDIR}/${P}-use-system-clipper.patch"
+ "${FILESDIR}/${P}-wayland.patch"
+)
src_prepare() {
- pushd "${WORKDIR}/Slic3r-${PV}" || die
sed -i lib/Slic3r.pm -e "s@FindBin::Bin@FindBin::RealBin@g" || die
- eapply "${FILESDIR}"/${P}-no-locallib.patch
- eapply "${FILESDIR}"/${P}-boost.patch
- eapply_user
- popd || die
- # drop std=c++11 to compiler defaults...
- sed \
- -e '/c++11/d' \
- -i Build.PL || die
+ perl-module_src_prepare
}
src_configure() {
+ cd "${PERL_S}" || die
SLIC3R_NO_AUTO=1 perl-module_src_configure
}
src_test() {
+ cd "${PERL_S}" || die
perl-module_src_test
- pushd .. || die
- prove -Ixs/blib/arch -Ixs/blib/lib/ t/ || die "Tests failed"
- popd || die
}
src_install() {
+ cd "${PERL_S}" || die
perl-module_src_install
pushd .. || die
@@ -108,7 +104,7 @@ src_install() {
exeinto "${VENDOR_LIB}"/Slic3r
doexe slic3r.pl
- dosym "${VENDOR_LIB}"/Slic3r/slic3r.pl /usr/bin/slic3r.pl
+ dosym "${VENDOR_LIB}/Slic3r/slic3r.pl" "${EPREFIX}/usr/bin/slic3r.pl"
make_desktop_entry "slic3r.pl --gui %F" \
Slic3r \