mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2025-01-25 20:19:18 -05:00
gnu: prusa-slicer: Update to 2.7.4.
* gnu/packages/engineering.scm (prusa-slicer): Update to 2.7.4. [source]: Remove "prusa-slicer-boost-fixes.patch" and "prusa-slicer-with-cereal-1.3.1.patch". Move some part of the snippet code to custom build phases. [arguments] <configure-flags>: Add paths to external libraries. Add "fix-include-paths" phase. [native-inputs]: Add catch2. [inputs]: Use prusa-wxwidgets instead of wxwidgets to fix segfaults. Add qhull, nanosvg, heatshrink and prusa-libbgcode. Sort inputs aphabetically. * gnu/packages/patches/prusa-slicer-boost-fixes.patch, gnu/packages/patches/prusa-slicer-with-cereal-1.3.1.patch: Remove unused patches. * gnu/local.mk (dist_patch_DATA): De-register "prusa-slicer-boost-fixes.patch" and "prusa-slicer-with-cereal-1.3.1.patch". Change-Id: I15e85d63c9ad6c731c8040ef2d8ec8b2f31f2ab7 Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
This commit is contained in:
parent
23fc353b3a
commit
99a81b6f2a
4 changed files with 36 additions and 170 deletions
|
@ -1842,9 +1842,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/pokerth-boost.patch \
|
%D%/packages/patches/pokerth-boost.patch \
|
||||||
%D%/packages/patches/ppsspp-disable-upgrade-and-gold.patch \
|
%D%/packages/patches/ppsspp-disable-upgrade-and-gold.patch \
|
||||||
%D%/packages/patches/procps-strtod-test.patch \
|
%D%/packages/patches/procps-strtod-test.patch \
|
||||||
%D%/packages/patches/prusa-slicer-boost-fixes.patch \
|
|
||||||
%D%/packages/patches/prusa-slicer-fix-tests.patch \
|
%D%/packages/patches/prusa-slicer-fix-tests.patch \
|
||||||
%D%/packages/patches/prusa-slicer-with-cereal-1.3.1.patch \
|
|
||||||
%D%/packages/patches/prusa-wxwidgets-makefile-fix.patch \
|
%D%/packages/patches/prusa-wxwidgets-makefile-fix.patch \
|
||||||
%D%/packages/patches/pthreadpool-system-libraries.patch \
|
%D%/packages/patches/pthreadpool-system-libraries.patch \
|
||||||
%D%/packages/patches/python-3.12-fix-tests.patch \
|
%D%/packages/patches/python-3.12-fix-tests.patch \
|
||||||
|
|
|
@ -3926,7 +3926,7 @@ (define-public prusa-libbgcode
|
||||||
(define-public prusa-slicer
|
(define-public prusa-slicer
|
||||||
(package
|
(package
|
||||||
(name "prusa-slicer")
|
(name "prusa-slicer")
|
||||||
(version "2.5.2")
|
(version "2.7.4")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
|
@ -3935,13 +3935,11 @@ (define-public prusa-slicer
|
||||||
(url "https://github.com/prusa3d/PrusaSlicer")
|
(url "https://github.com/prusa3d/PrusaSlicer")
|
||||||
(commit (string-append "version_" version))))
|
(commit (string-append "version_" version))))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256 (base32 "02qcrw3fa0d8ldbp73hp14l1qxbp3f4608j4csc07ny00ra42151"))
|
(sha256 (base32 "0s1cfvhfilyv0y98asr61c6rwlgyr1hf5v5hg8q9zwmzm2bkcql3"))
|
||||||
(patches (search-patches "prusa-slicer-boost-fixes.patch"
|
(patches (search-patches "prusa-slicer-fix-tests.patch"))
|
||||||
"prusa-slicer-fix-tests.patch"
|
|
||||||
"prusa-slicer-with-cereal-1.3.1.patch"))
|
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(snippet
|
(snippet
|
||||||
'(begin
|
`(begin
|
||||||
;; Prusa slicer bundles a lot of dependencies in src/ directory.
|
;; Prusa slicer bundles a lot of dependencies in src/ directory.
|
||||||
;; Most of them contain prusa-specific modifications (e.g. avrdude),
|
;; Most of them contain prusa-specific modifications (e.g. avrdude),
|
||||||
;; but others do not. Here we replace the latter with Guix packages.
|
;; but others do not. Here we replace the latter with Guix packages.
|
||||||
|
@ -3949,10 +3947,12 @@ (define-public prusa-slicer
|
||||||
(delete-file-recursively "src/hidapi")
|
(delete-file-recursively "src/hidapi")
|
||||||
(delete-file-recursively "src/eigen")
|
(delete-file-recursively "src/eigen")
|
||||||
(delete-file-recursively "src/libigl/igl")
|
(delete-file-recursively "src/libigl/igl")
|
||||||
|
(substitute* "CMakeLists.txt"
|
||||||
|
(("add_library\\(libexpat INTERFACE\\)")
|
||||||
|
""))
|
||||||
|
(substitute* "src/libigl/CMakeLists.txt"
|
||||||
|
(("target_link_libraries\\(libigl INTERFACE igl::core\\)") ""))
|
||||||
(substitute* "src/CMakeLists.txt"
|
(substitute* "src/CMakeLists.txt"
|
||||||
(("add_subdirectory\\(libigl\\)" all)
|
|
||||||
(string-append
|
|
||||||
all "\ninclude_directories(libigl INTERFACE libigl::core)"))
|
|
||||||
(("add_subdirectory\\(hidapi\\)")
|
(("add_subdirectory\\(hidapi\\)")
|
||||||
"pkg_check_modules(HIDAPI REQUIRED hidapi-hidraw)")
|
"pkg_check_modules(HIDAPI REQUIRED hidapi-hidraw)")
|
||||||
(("include_directories\\(hidapi/include\\)")
|
(("include_directories\\(hidapi/include\\)")
|
||||||
|
@ -3965,13 +3965,26 @@ (define-public prusa-slicer
|
||||||
(("\\bhidapi\\b") "${HIDAPI_LIBRARIES}"))))))
|
(("\\bhidapi\\b") "${HIDAPI_LIBRARIES}"))))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:configure-flags
|
(list #:configure-flags
|
||||||
'("-DSLIC3R_FHS=1" ;; Use The Filesystem Hierarchy Standard.
|
#~(list "-DSLIC3R_FHS=1" ;; Use The Filesystem Hierarchy Standard.
|
||||||
"-DSLIC3R_GTK=3" ;; Use GTK+
|
"-DSLIC3R_GTK=3" ;; Use GTK+
|
||||||
;; Use wxWidgets 3.0.x.x to prevent GUI crashes when adding support enforcers.
|
;; Use wxWidgets 3.0.x.x to prevent GUI crashes when adding support enforcers.
|
||||||
"-DSLIC3R_WX_STABLE=1")))
|
"-DSLIC3R_WX_STABLE=1"
|
||||||
|
(format #f "-Dlibigl_DIR=~a"
|
||||||
|
(search-input-directory %build-inputs
|
||||||
|
"lib/cmake/igl/"))
|
||||||
|
(format #f "-DCatch2_DIR=~a"
|
||||||
|
(search-input-directory %build-inputs
|
||||||
|
"lib/cmake/Catch2/")))
|
||||||
|
#:phases
|
||||||
|
#~(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'fix-include-paths
|
||||||
|
(lambda _
|
||||||
|
(substitute* "tests/libslic3r/test_quadric_edge_collapse.cpp"
|
||||||
|
(("#include <libigl/igl/qslim.h>")
|
||||||
|
"#include <igl/qslim.h>")))))))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
(list pkg-config))
|
(list pkg-config catch2))
|
||||||
(inputs
|
(inputs
|
||||||
(list boost
|
(list boost
|
||||||
cereal
|
cereal
|
||||||
|
@ -3979,11 +3992,13 @@ (define-public prusa-slicer
|
||||||
curl
|
curl
|
||||||
dbus
|
dbus
|
||||||
eigen
|
eigen
|
||||||
|
eudev
|
||||||
expat
|
expat
|
||||||
glew
|
glew
|
||||||
glib
|
glib
|
||||||
gmp
|
gmp
|
||||||
gtk+
|
gtk+
|
||||||
|
heatshrink
|
||||||
hidapi
|
hidapi
|
||||||
ilmbase
|
ilmbase
|
||||||
libigl
|
libigl
|
||||||
|
@ -3991,15 +4006,17 @@ (define-public prusa-slicer
|
||||||
libpng
|
libpng
|
||||||
mesa
|
mesa
|
||||||
mpfr
|
mpfr
|
||||||
|
nanosvg
|
||||||
nlopt
|
nlopt
|
||||||
opencascade-occt
|
opencascade-occt
|
||||||
openvdb
|
openvdb
|
||||||
pango
|
pango
|
||||||
|
prusa-libbgcode
|
||||||
|
;; XXX: Using Prusa wxWidgets fork as PrusaSlicer segfaults when compiled
|
||||||
|
;; with regular wxwidgets.
|
||||||
|
prusa-wxwidgets
|
||||||
|
qhull
|
||||||
tbb
|
tbb
|
||||||
eudev
|
|
||||||
;; prusa-slicer 2.5 segfaults on startup with wxwidgets 3.2
|
|
||||||
;; See https://github.com/prusa3d/PrusaSlicer/issues/8299
|
|
||||||
wxwidgets-3.0
|
|
||||||
zlib))
|
zlib))
|
||||||
(home-page "https://www.prusa3d.com/prusaslicer/")
|
(home-page "https://www.prusa3d.com/prusaslicer/")
|
||||||
(synopsis "G-code generator for 3D printers (RepRap, Makerbot, Ultimaker etc.)")
|
(synopsis "G-code generator for 3D printers (RepRap, Makerbot, Ultimaker etc.)")
|
||||||
|
|
|
@ -1,97 +0,0 @@
|
||||||
Fixes for Boost compatibility.
|
|
||||||
This patch comes from Gentoo:
|
|
||||||
portage/media-gfx/prusaslicer/files/prusaslicer-2.5.0_alpha2-boost-fixes.patch
|
|
||||||
|
|
||||||
--- a/src/hints/HintsToPot.cpp
|
|
||||||
+++ b/src/hints/HintsToPot.cpp
|
|
||||||
@@ -1,6 +1,7 @@
|
|
||||||
#include <iostream>
|
|
||||||
#include <vector>
|
|
||||||
#include <string>
|
|
||||||
+#include <boost/nowide/fstream.hpp>
|
|
||||||
#include <boost/filesystem.hpp>
|
|
||||||
#include <boost/dll.hpp>
|
|
||||||
#include <boost/property_tree/ini_parser.hpp>
|
|
||||||
@@ -9,7 +10,7 @@
|
|
||||||
|
|
||||||
bool write_to_pot(boost::filesystem::path path, const std::vector<std::pair<std::string, std::string>>& data)
|
|
||||||
{
|
|
||||||
- boost::filesystem::ofstream file(std::move(path), std::ios_base::app);
|
|
||||||
+ boost::nowide::ofstream file(std::move(path), std::ios_base::app);
|
|
||||||
for (const auto& element : data)
|
|
||||||
{
|
|
||||||
//Example of .pot element
|
|
||||||
--- a/src/libslic3r/Preset.cpp
|
|
||||||
+++ b/src/libslic3r/Preset.cpp
|
|
||||||
@@ -25,6 +25,7 @@
|
|
||||||
#include <stdexcept>
|
|
||||||
#include <unordered_map>
|
|
||||||
#include <boost/format.hpp>
|
|
||||||
+#include <boost/nowide/fstream.hpp>
|
|
||||||
#include <boost/filesystem.hpp>
|
|
||||||
#include <boost/filesystem/fstream.hpp>
|
|
||||||
#include <boost/algorithm/string.hpp>
|
|
||||||
@@ -84,7 +85,7 @@ ConfigFileType guess_config_file_type(const ptree &tree)
|
|
||||||
VendorProfile VendorProfile::from_ini(const boost::filesystem::path &path, bool load_all)
|
|
||||||
{
|
|
||||||
ptree tree;
|
|
||||||
- boost::filesystem::ifstream ifs(path);
|
|
||||||
+ boost::nowide::ifstream ifs(path);
|
|
||||||
boost::property_tree::read_ini(ifs, tree);
|
|
||||||
return VendorProfile::from_ini(tree, path, load_all);
|
|
||||||
}
|
|
||||||
--- a/src/slic3r/GUI/DesktopIntegrationDialog.cpp
|
|
||||||
+++ b/src/slic3r/GUI/DesktopIntegrationDialog.cpp
|
|
||||||
@@ -10,6 +10,7 @@
|
|
||||||
#include "libslic3r/Platform.hpp"
|
|
||||||
#include "libslic3r/Config.hpp"
|
|
||||||
|
|
||||||
+#include <boost/nowide/fstream.hpp>
|
|
||||||
#include <boost/filesystem.hpp>
|
|
||||||
#include <boost/log/trivial.hpp>
|
|
||||||
#include <boost/dll/runtime_symbol_info.hpp>
|
|
||||||
@@ -503,4 +504,4 @@ DesktopIntegrationDialog::~DesktopIntegrationDialog()
|
|
||||||
|
|
||||||
} // namespace GUI
|
|
||||||
} // namespace Slic3r
|
|
||||||
-#endif // __linux__
|
|
||||||
\ No newline at end of file
|
|
||||||
+#endif // __linux__
|
|
||||||
--- a/src/slic3r/GUI/GUI_App.cpp
|
|
||||||
+++ b/src/slic3r/GUI/GUI_App.cpp
|
|
||||||
@@ -13,6 +13,7 @@
|
|
||||||
#include <cstdlib>
|
|
||||||
#include <regex>
|
|
||||||
#include <string_view>
|
|
||||||
+#include <boost/nowide/fstream.hpp>
|
|
||||||
#include <boost/algorithm/string/predicate.hpp>
|
|
||||||
#include <boost/algorithm/string.hpp>
|
|
||||||
#include <boost/format.hpp>
|
|
||||||
--- a/src/slic3r/GUI/HintNotification.cpp
|
|
||||||
+++ b/src/slic3r/GUI/HintNotification.cpp
|
|
||||||
@@ -15,6 +15,7 @@
|
|
||||||
#include "libslic3r/PrintConfig.hpp"
|
|
||||||
|
|
||||||
#include <boost/algorithm/string/replace.hpp>
|
|
||||||
+#include <boost/nowide/fstream.hpp>
|
|
||||||
#include <boost/filesystem.hpp>
|
|
||||||
#include <boost/nowide/fstream.hpp>
|
|
||||||
#include <boost/log/trivial.hpp>
|
|
||||||
@@ -65,7 +66,7 @@ inline void push_style_color(ImGuiCol idx, const ImVec4& col, bool fading_out, f
|
|
||||||
|
|
||||||
void write_used_binary(const std::vector<std::string>& ids)
|
|
||||||
{
|
|
||||||
- boost::filesystem::ofstream file((boost::filesystem::path(data_dir()) / "cache" / "hints.cereal"), std::ios::binary);
|
|
||||||
+ boost::nowide::ofstream file((boost::filesystem::path(data_dir()) / "cache" / "hints.cereal"), std::ios::binary);
|
|
||||||
cereal::BinaryOutputArchive archive(file);
|
|
||||||
HintsCerealData cd { ids };
|
|
||||||
try
|
|
||||||
@@ -84,7 +85,7 @@ void read_used_binary(std::vector<std::string>& ids)
|
|
||||||
BOOST_LOG_TRIVIAL(warning) << "Failed to load to hints.cereal. File does not exists. " << path.string();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
- boost::filesystem::ifstream file(path);
|
|
||||||
+ boost::nowide::ifstream file(path);
|
|
||||||
cereal::BinaryInputArchive archive(file);
|
|
||||||
HintsCerealData cd;
|
|
||||||
try
|
|
|
@ -1,52 +0,0 @@
|
||||||
Fix for building with cereal>=1.3.1.
|
|
||||||
This patch comes from Gentoo:
|
|
||||||
portage/media-gfx/prusaslicer/files/prusaslicer-2.5.0_rc1-cereal-1.3.1.patch
|
|
||||||
|
|
||||||
--- a/src/CMakeLists.txt
|
|
||||||
+++ b/src/CMakeLists.txt
|
|
||||||
@@ -127,7 +127,7 @@
|
|
||||||
set_target_properties(PrusaSlicer PROPERTIES OUTPUT_NAME "prusa-slicer")
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
-target_link_libraries(PrusaSlicer libslic3r cereal)
|
|
||||||
+target_link_libraries(PrusaSlicer libslic3r libcereal)
|
|
||||||
|
|
||||||
if (APPLE)
|
|
||||||
# add_compile_options(-stdlib=libc++)
|
|
||||||
--- a/src/slic3r/CMakeLists.txt
|
|
||||||
+++ b/src/slic3r/CMakeLists.txt
|
|
||||||
@@ -260,7 +260,7 @@
|
|
||||||
|
|
||||||
encoding_check(libslic3r_gui)
|
|
||||||
|
|
||||||
-target_link_libraries(libslic3r_gui libslic3r avrdude cereal imgui GLEW::GLEW OpenGL::GL hidapi libcurl ${wxWidgets_LIBRARIES})
|
|
||||||
+target_link_libraries(libslic3r_gui libslic3r avrdude libcereal imgui GLEW::GLEW OpenGL::GL hidapi libcurl ${wxWidgets_LIBRARIES})
|
|
||||||
|
|
||||||
if (MSVC)
|
|
||||||
target_link_libraries(libslic3r_gui Setupapi.lib)
|
|
||||||
--- a/src/libslic3r/CMakeLists.txt
|
|
||||||
+++ b/src/libslic3r/CMakeLists.txt
|
|
||||||
@@ -395,7 +395,7 @@
|
|
||||||
target_link_libraries(libslic3r
|
|
||||||
libnest2d
|
|
||||||
admesh
|
|
||||||
- cereal
|
|
||||||
+ libcereal
|
|
||||||
libigl
|
|
||||||
miniz
|
|
||||||
boost_libs
|
|
||||||
--- a/CMakeLists.txt
|
|
||||||
+++ b/CMakeLists.txt
|
|
||||||
@@ -446,6 +446,12 @@
|
|
||||||
|
|
||||||
# Find the Cereal serialization library
|
|
||||||
find_package(cereal REQUIRED)
|
|
||||||
+add_library(libcereal INTERFACE)
|
|
||||||
+if (NOT TARGET cereal::cereal)
|
|
||||||
+ target_link_libraries(libcereal INTERFACE cereal)
|
|
||||||
+else()
|
|
||||||
+ target_link_libraries(libcereal INTERFACE cereal::cereal)
|
|
||||||
+endif()
|
|
||||||
|
|
||||||
# l10n
|
|
||||||
set(L10N_DIR "${SLIC3R_RESOURCES_DIR}/localization")
|
|
Loading…
Reference in a new issue