# Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 inherit eutils perl-module DESCRIPTION="A mesh slicer to generate G-code for fused-filament-fabrication (3D printers)" HOMEPAGE="https://slic3r.org" SRC_URI="https://github.com/alexrj/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" LICENSE="AGPL-3 CC-BY-3.0" SLOT="0" KEYWORDS="amd64 x86" IUSE="+gui test" # check Build.PL for dependencies RDEPEND="!=dev-lang/perl-5.16* >=dev-libs/boost-1.55[threads] dev-perl/Class-XSAccessor dev-perl/Encode-Locale dev-perl/IO-stringy >=dev-perl/Math-PlanePath-53.0.0 >=dev-perl/Moo-1.3.1 dev-perl/XML-SAX-ExpatXS virtual/perl-Carp virtual/perl-File-Spec virtual/perl-Getopt-Long virtual/perl-parent virtual/perl-Scalar-List-Utils virtual/perl-Test-Simple virtual/perl-Thread-Semaphore >=virtual/perl-threads-1.960.0 virtual/perl-Time-HiRes virtual/perl-XSLoader gui? ( dev-perl/Class-Accessor dev-perl/Growl-GNTP dev-perl/libwww-perl dev-perl/Module-Pluggable dev-perl/Net-Bonjour dev-perl/Net-DBus dev-perl/OpenGL >=dev-perl/Wx-0.991.800 dev-perl/Wx-GLCanvas >=media-libs/freeglut-3 virtual/perl-Math-Complex >=virtual/perl-Socket-2.16.0 x11-libs/libXmu )" DEPEND="${RDEPEND} >=dev-perl/ExtUtils-CppGuess-0.70.0 >=dev-perl/ExtUtils-Typemaps-Default-1.50.0 >=dev-perl/ExtUtils-XSpp-0.170.0 >=dev-perl/Module-Build-0.380.0 >=dev-perl/Module-Build-WithXSpp-0.140.0 >=virtual/perl-ExtUtils-MakeMaker-6.800.0 >=virtual/perl-ExtUtils-ParseXS-3.220.0 test? ( virtual/perl-Test-Harness virtual/perl-Test-Simple )" DIST_TEST="do" S="${WORKDIR}/Slic3r-${PV}/xs" src_prepare() { pushd "${WORKDIR}/Slic3r-${PV}" || die eapply "${FILESDIR}/${P}-adjust_var_path.patch" eapply_user popd || die } src_configure() { SLIC3R_NO_AUTO=1 perl-module_src_configure } src_test() { perl-module_src_test # 1.1.7 Is kinda broken after Perl 5.16 pushd .. || die ewarn "Some Tests Skipped due to consuming 100% of RAM" local bad_files=( t/combineinfill.t t/cooling.t t/custom_gcode.t t/fill.t t/flow.t t/gaps.t t/gcode.t t/layers.t t/multi.t t/perimeters.t t/print.t t/retraction.t t/shells.t t/skirt_brim.t t/support.t t/threads.t t/vibrationlimit.t ); for filename in "${bad_files[@]}"; do einfo "Removing bad test ${filename}"; rm -f "./${filename}" || die "Cannot remove ./${filename}"; done prove -Ixs/blib/arch -Ixs/blib/lib/ t/ || die "Tests failed" popd || die } src_install() { perl-module_src_install pushd .. || die insinto "${VENDOR_LIB}" doins -r lib/Slic3r.pm lib/Slic3r insinto "${VENDOR_LIB}"/Slic3r doins -r var exeinto "${VENDOR_LIB}"/Slic3r doexe slic3r.pl dosym "${VENDOR_LIB}"/Slic3r/slic3r.pl /usr/bin/slic3r.pl make_desktop_entry slic3r.pl \ Slic3r \ "${VENDOR_LIB}/Slic3r/var/Slic3r_128px.png" \ "Graphics;3DGraphics;Engineering;Development" popd || die }