Merge pull request #55475 from Moredread/slic3r
prusa-slicer: renamed from slic3r-prusa3d and updated 1.41.3 -> 2.0.0
This commit is contained in:
commit
dd14c5b21d
89
pkgs/applications/misc/prusa-slicer/default.nix
Normal file
89
pkgs/applications/misc/prusa-slicer/default.nix
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
{ stdenv, lib, fetchFromGitHub, makeWrapper, cmake, pkgconfig
|
||||||
|
, boost, curl, expat, glew, libpng, tbb, wxGTK30
|
||||||
|
, gtest, nlopt, xorg, makeDesktopItem
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
nloptVersion = if lib.hasAttr "version" nlopt
|
||||||
|
then lib.getAttr "version" nlopt
|
||||||
|
else "2.4";
|
||||||
|
in
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "prusa-slicer-${version}";
|
||||||
|
version = "2.0.0";
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
cmake
|
||||||
|
makeWrapper
|
||||||
|
pkgconfig
|
||||||
|
];
|
||||||
|
|
||||||
|
# We could add Eigen, but it doesn't currently compile with the version in
|
||||||
|
# nixpkgs.
|
||||||
|
buildInputs = [
|
||||||
|
boost
|
||||||
|
curl
|
||||||
|
expat
|
||||||
|
glew
|
||||||
|
libpng
|
||||||
|
tbb
|
||||||
|
wxGTK30
|
||||||
|
xorg.libX11
|
||||||
|
] ++ checkInputs;
|
||||||
|
|
||||||
|
checkInputs = [ gtest ];
|
||||||
|
|
||||||
|
# The build system uses custom logic - defined in
|
||||||
|
# xs/src/libnest2d/cmake_modules/FindNLopt.cmake in the package source -
|
||||||
|
# for finding the nlopt library, which doesn't pick up the package in the nix store.
|
||||||
|
# We need to set the path via the NLOPT environment variable instead.
|
||||||
|
NLOPT = "${nlopt}";
|
||||||
|
|
||||||
|
prePatch = ''
|
||||||
|
# In nix ioctls.h isn't available from the standard kernel-headers package
|
||||||
|
# on other distributions. As the copy in glibc seems to be identical to the
|
||||||
|
# one in the kernel, we use that one instead.
|
||||||
|
sed -i 's|"/usr/include/asm-generic/ioctls.h"|<asm-generic/ioctls.h>|g' src/libslic3r/GCodeSender.cpp
|
||||||
|
'' + lib.optionalString (lib.versionOlder "2.5" nloptVersion) ''
|
||||||
|
# Since version 2.5.0 of nlopt we need to link to libnlopt, as libnlopt_cxx
|
||||||
|
# now seems to be integrated into the main lib.
|
||||||
|
sed -i 's|nlopt_cxx|nlopt|g' src/libnest2d/cmake_modules/FindNLopt.cmake
|
||||||
|
'';
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "prusa3d";
|
||||||
|
repo = "PrusaSlicer";
|
||||||
|
sha256 = "135wn2sza2f2kvbja1haxil5kx1b74lc1i7dsa35i1y3phabykhz";
|
||||||
|
rev = "version_${version}";
|
||||||
|
};
|
||||||
|
|
||||||
|
cmakeFlags = [
|
||||||
|
"-DSLIC3R_FHS=1"
|
||||||
|
"-DSLIC3R_WX_STABLE=1" # necessary when compiling against wxGTK 3.0
|
||||||
|
];
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
mkdir -p "$out/share/pixmaps/"
|
||||||
|
ln -s "$out/share/PrusaSlicer/icons/PrusaSlicer.png" "$out/share/pixmaps/PrusaSlicer.png"
|
||||||
|
mkdir -p "$out/share/applications"
|
||||||
|
cp "$desktopItem"/share/applications/* "$out/share/applications/"
|
||||||
|
'';
|
||||||
|
|
||||||
|
desktopItem = makeDesktopItem {
|
||||||
|
name = "PrusaSlicer";
|
||||||
|
exec = "prusa-slicer";
|
||||||
|
icon = "PrusaSlicer";
|
||||||
|
comment = "G-code generator for 3D printers";
|
||||||
|
desktopName = "PrusaSlicer";
|
||||||
|
genericName = "3D printer tool";
|
||||||
|
categories = "Application;Development;";
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "G-code generator for 3D printer";
|
||||||
|
homepage = https://github.com/prusa3d/PrusaSlicer;
|
||||||
|
license = licenses.agpl3;
|
||||||
|
maintainers = with maintainers; [ tweber ];
|
||||||
|
};
|
||||||
|
}
|
@ -1,147 +0,0 @@
|
|||||||
{ stdenv, lib, fetchFromGitHub, makeWrapper, which, cmake, perl, perlPackages,
|
|
||||||
boost, tbb, wxGTK30, pkgconfig, gtk3, fetchurl, gtk2, libGLU,
|
|
||||||
glew, eigen, curl, gtest, nlopt, pcre, xorg, makeDesktopItem }:
|
|
||||||
let
|
|
||||||
AlienWxWidgets = perlPackages.buildPerlPackage rec {
|
|
||||||
name = "Alien-wxWidgets-0.69";
|
|
||||||
src = fetchurl {
|
|
||||||
url = "mirror://cpan/authors/id/M/MD/MDOOTSON/${name}.tar.gz";
|
|
||||||
sha256 = "075m880klf66pbcfk0la2nl60vd37jljizqndrklh5y4zvzdy1nr";
|
|
||||||
};
|
|
||||||
propagatedBuildInputs = [
|
|
||||||
pkgconfig perlPackages.ModulePluggable perlPackages.ModuleBuild
|
|
||||||
gtk2 gtk3 wxGTK30
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
Wx = perlPackages.Wx.overrideAttrs (oldAttrs: {
|
|
||||||
propagatedBuildInputs = [
|
|
||||||
perlPackages.ExtUtilsXSpp
|
|
||||||
AlienWxWidgets
|
|
||||||
];
|
|
||||||
});
|
|
||||||
|
|
||||||
WxGLCanvas = perlPackages.buildPerlPackage rec {
|
|
||||||
name = "Wx-GLCanvas-0.09";
|
|
||||||
src = fetchurl {
|
|
||||||
url = "mirror://cpan/authors/id/M/MB/MBARBON/${name}.tar.gz";
|
|
||||||
sha256 = "1q4gvj4gdx4l8k4mkgiix24p9mdfy1miv7abidf0my3gy2gw5lka";
|
|
||||||
};
|
|
||||||
propagatedBuildInputs = [ Wx perlPackages.OpenGL libGLU ];
|
|
||||||
doCheck = false;
|
|
||||||
};
|
|
||||||
in
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
name = "slic3r-prusa-edition-${version}";
|
|
||||||
version = "1.41.3";
|
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
|
||||||
cmake
|
|
||||||
makeWrapper
|
|
||||||
];
|
|
||||||
|
|
||||||
buildInputs = [
|
|
||||||
curl
|
|
||||||
eigen
|
|
||||||
glew
|
|
||||||
pcre
|
|
||||||
perl
|
|
||||||
tbb
|
|
||||||
which
|
|
||||||
Wx
|
|
||||||
WxGLCanvas
|
|
||||||
xorg.libXdmcp
|
|
||||||
xorg.libpthreadstubs
|
|
||||||
] ++ checkInputs ++ (with perlPackages; [
|
|
||||||
boost
|
|
||||||
ClassXSAccessor
|
|
||||||
EncodeLocale
|
|
||||||
ExtUtilsMakeMaker
|
|
||||||
ExtUtilsTypemapsDefault
|
|
||||||
ExtUtilsXSpp
|
|
||||||
GrowlGNTP
|
|
||||||
ImportInto
|
|
||||||
IOStringy
|
|
||||||
locallib
|
|
||||||
LWP
|
|
||||||
MathClipper
|
|
||||||
MathConvexHullMonotoneChain
|
|
||||||
MathGeometryVoronoi
|
|
||||||
MathPlanePath
|
|
||||||
ModuleBuildWithXSpp
|
|
||||||
Moo
|
|
||||||
NetDBus
|
|
||||||
OpenGL
|
|
||||||
XMLSAX
|
|
||||||
]);
|
|
||||||
|
|
||||||
checkInputs = [ gtest ];
|
|
||||||
|
|
||||||
# The build system uses custom logic - defined in
|
|
||||||
# xs/src/libnest2d/cmake_modules/FindNLopt.cmake in the package source -
|
|
||||||
# for finding the nlopt library, which doesn't pick up the package in the nix store.
|
|
||||||
# We need to set the path via the NLOPT environment variable instead.
|
|
||||||
NLOPT = "${nlopt}";
|
|
||||||
|
|
||||||
prePatch = ''
|
|
||||||
# In nix ioctls.h isn't available from the standard kernel-headers package
|
|
||||||
# on other distributions. As the copy in glibc seems to be identical to the
|
|
||||||
# one in the kernel, we use that one instead.
|
|
||||||
sed -i 's|"/usr/include/asm-generic/ioctls.h"|<asm-generic/ioctls.h>|g' xs/src/libslic3r/GCodeSender.cpp
|
|
||||||
|
|
||||||
# PERL_VENDORARCH and PERL_VENDORLIB aren't set correctly by the build
|
|
||||||
# system, so we have to override them. Setting them as environment variables
|
|
||||||
# doesn't work though, so substituting the paths directly in CMakeLists.txt
|
|
||||||
# seems to be the easiest way.
|
|
||||||
sed -i "s|\''${PERL_VENDORARCH}|$out/lib/slic3r-prusa3d|g" xs/CMakeLists.txt
|
|
||||||
sed -i "s|\''${PERL_VENDORLIB}|$out/lib/slic3r-prusa3d|g" xs/CMakeLists.txt
|
|
||||||
'' + lib.optionalString (lib.versionOlder "2.5" nlopt.version) ''
|
|
||||||
# Since version 2.5.0 of nlopt we need to link to libnlopt, as libnlopt_cxx
|
|
||||||
# now seems to be integrated into the main lib.
|
|
||||||
sed -i 's|nlopt_cxx|nlopt|g' xs/src/libnest2d/cmake_modules/FindNLopt.cmake
|
|
||||||
'';
|
|
||||||
|
|
||||||
postInstall = ''
|
|
||||||
echo 'postInstall'
|
|
||||||
wrapProgram "$out/bin/slic3r-prusa3d" \
|
|
||||||
--prefix PERL5LIB : "$out/lib/slic3r-prusa3d:$PERL5LIB"
|
|
||||||
|
|
||||||
# it seems we need to copy the icons...
|
|
||||||
mkdir -p $out/bin/var
|
|
||||||
cp -r ../resources/icons/* $out/bin/var/
|
|
||||||
cp -r ../resources $out/bin/
|
|
||||||
|
|
||||||
|
|
||||||
mkdir -p "$out/share/pixmaps/"
|
|
||||||
ln -s "$out/bin/var/Slic3r.png" "$out/share/pixmaps/slic3r-prusa.png"
|
|
||||||
mkdir -p "$out/share/applications"
|
|
||||||
cp "$desktopItem"/share/applications/* "$out/share/applications/"
|
|
||||||
'';
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "prusa3d";
|
|
||||||
repo = "Slic3r";
|
|
||||||
sha256 = "145dfsv610c5p0sngab9z7lzbk5383pq9l26mrrpf1wxdlxgljpl";
|
|
||||||
rev = "version_${version}";
|
|
||||||
};
|
|
||||||
|
|
||||||
desktopItem = makeDesktopItem {
|
|
||||||
name = "slic3r-Prusa-Edition";
|
|
||||||
exec = "slic3r-prusa3d";
|
|
||||||
icon = "slic3r-prusa";
|
|
||||||
comment = "G-code generator for 3D printers";
|
|
||||||
desktopName = "Slic3r Prusa Edition";
|
|
||||||
genericName = "3D printer tool";
|
|
||||||
categories = "Application;Development;";
|
|
||||||
};
|
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
|
||||||
description = "G-code generator for 3D printer";
|
|
||||||
homepage = https://github.com/prusa3d/Slic3r;
|
|
||||||
license = licenses.agpl3;
|
|
||||||
maintainers = with maintainers; [ tweber ];
|
|
||||||
broken = stdenv.hostPlatform.isAarch64;
|
|
||||||
};
|
|
||||||
}
|
|
@ -303,6 +303,7 @@ mapAliases ({
|
|||||||
shared_mime_info = shared-mime-info; # added 2018-02-25
|
shared_mime_info = shared-mime-info; # added 2018-02-25
|
||||||
skrooge2 = skrooge; # added 2017-02-18
|
skrooge2 = skrooge; # added 2017-02-18
|
||||||
skype = skypeforlinux; # added 2017-07-27
|
skype = skypeforlinux; # added 2017-07-27
|
||||||
|
slic3r-prusa3d = prusa-slicer; # added 2019-05-21
|
||||||
slurm-llnl = slurm; # renamed July 2017
|
slurm-llnl = slurm; # renamed July 2017
|
||||||
slurm-llnl-full = slurm-full; # renamed July 2017
|
slurm-llnl-full = slurm-full; # renamed July 2017
|
||||||
slurm-full = slurm; # added 2018-05-1
|
slurm-full = slurm; # added 2018-05-1
|
||||||
|
@ -20132,8 +20132,6 @@ in
|
|||||||
|
|
||||||
slic3r = callPackage ../applications/misc/slic3r { };
|
slic3r = callPackage ../applications/misc/slic3r { };
|
||||||
|
|
||||||
slic3r-prusa3d = callPackage ../applications/misc/slic3r/prusa3d.nix { };
|
|
||||||
|
|
||||||
curaengine_stable = callPackage ../applications/misc/curaengine/stable.nix { };
|
curaengine_stable = callPackage ../applications/misc/curaengine/stable.nix { };
|
||||||
cura_stable = callPackage ../applications/misc/cura/stable.nix {
|
cura_stable = callPackage ../applications/misc/cura/stable.nix {
|
||||||
curaengine = curaengine_stable;
|
curaengine = curaengine_stable;
|
||||||
@ -20156,6 +20154,8 @@ in
|
|||||||
|
|
||||||
printrun = callPackage ../applications/misc/printrun { };
|
printrun = callPackage ../applications/misc/printrun { };
|
||||||
|
|
||||||
|
prusa-slicer = callPackage ../applications/misc/prusa-slicer { };
|
||||||
|
|
||||||
sddm = libsForQt5.callPackage ../applications/display-managers/sddm { };
|
sddm = libsForQt5.callPackage ../applications/display-managers/sddm { };
|
||||||
|
|
||||||
skrooge = libsForQt5.callPackage ../applications/office/skrooge {};
|
skrooge = libsForQt5.callPackage ../applications/office/skrooge {};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user