diff options
author | 2024-09-12 22:57:47 +0200 | |
---|---|---|
committer | 2024-09-12 22:58:04 +0200 | |
commit | cc07fdfc6286c7066eacb8a73775337ec70fd130 (patch) | |
tree | d876a2a7f508efd7442f01560a0bcb0c105e2f57 /media-gfx | |
parent | media-libs/vulkan-loader: fix invalid PDEPEND (diff) | |
download | gentoo-cc07fdfc6286c7066eacb8a73775337ec70fd130.tar.gz gentoo-cc07fdfc6286c7066eacb8a73775337ec70fd130.tar.bz2 gentoo-cc07fdfc6286c7066eacb8a73775337ec70fd130.zip |
media-gfx/prusaslicer: partially fixed live for 2.8.1 rc1
Signed-off-by: Miroslav Šulc <fordfrog@gentoo.org>
Diffstat (limited to 'media-gfx')
5 files changed, 136 insertions, 3 deletions
diff --git a/media-gfx/prusaslicer/files/prusaslicer-2.8.1-cgal.patch b/media-gfx/prusaslicer/files/prusaslicer-2.8.1-cgal.patch new file mode 100644 index 000000000000..53267f1243ff --- /dev/null +++ b/media-gfx/prusaslicer/files/prusaslicer-2.8.1-cgal.patch @@ -0,0 +1,84 @@ +--- a/src/libslic3r/CutSurface.cpp ++++ b/src/libslic3r/CutSurface.cpp +@@ -1437,8 +1437,8 @@ priv::CutAOIs priv::cut_from_model(CutMesh &cgal_model, + // detect anomalities in visitor. + bool is_valid = true; + // NOTE: map are created when convert shapes to cgal model +- const EdgeShapeMap& edge_shape_map = cgal_shape.property_map<EI, IntersectingElement>(edge_shape_map_name).first; +- const FaceShapeMap& face_shape_map = cgal_shape.property_map<FI, IntersectingElement>(face_shape_map_name).first; ++ EdgeShapeMap& edge_shape_map = cgal_shape.property_map<EI, IntersectingElement>(edge_shape_map_name).value(); ++ FaceShapeMap& face_shape_map = cgal_shape.property_map<FI, IntersectingElement>(face_shape_map_name).value(); + Visitor visitor{cgal_model, cgal_shape, edge_shape_map, face_shape_map, vert_shape_map, &is_valid}; + + // a property map containing the constrained-or-not status of each edge +@@ -1587,8 +1587,8 @@ void priv::collect_surface_data(std::queue<FI> &process, + + void priv::create_reduce_map(ReductionMap &reduction_map, const CutMesh &mesh) + { +- const VertexShapeMap &vert_shape_map = mesh.property_map<VI, const IntersectingElement*>(vert_shape_map_name).first; +- const EdgeBoolMap &ecm = mesh.property_map<EI, bool>(is_constrained_edge_name).first; ++ VertexShapeMap &vert_shape_map = mesh.property_map<VI, const IntersectingElement*>(vert_shape_map_name).value(); ++ EdgeBoolMap &ecm = mesh.property_map<EI, bool>(is_constrained_edge_name).value(); + + // check if vertex was made by edge_2 which is diagonal of quad + auto is_reducible_vertex = [&vert_shape_map](VI reduction_from) -> bool { +@@ -1772,11 +1772,11 @@ priv::VDistances priv::calc_distances(const SurfacePatches &patches, + priv::VDistances result(count_shapes_points); + for (const SurfacePatch &patch : patches) { + // map is created during intersection by corefine visitor +- const VertexShapeMap &vert_shape_map = +- models[patch.model_id].property_map<VI, const IntersectingElement *>(vert_shape_map_name).first; ++ VertexShapeMap &vert_shape_map = ++ models[patch.model_id].property_map<VI, const IntersectingElement *>(vert_shape_map_name).value(); + uint32_t patch_index = &patch - &patches.front(); + // map is created during patch creation / dividing +- const CvtVI2VI& cvt = patch.mesh.property_map<VI, VI>(patch_source_name).first; ++ CvtVI2VI& cvt = patch.mesh.property_map<VI, VI>(patch_source_name).value(); + // for each point on outline + for (const Loop &loop : patch.loops) + for (const VI &vi_patch : loop) { +@@ -2785,7 +2785,7 @@ using BBS = std::vector<BoundingBoxf3>; + BBS create_bbs(const VCutAOIs &cuts, const CutMeshes &cut_models); + + using Primitive = CGAL::AABB_face_graph_triangle_primitive<CutMesh>; +-using Traits = CGAL::AABB_traits<EpicKernel, Primitive>; ++using Traits = CGAL::AABB_traits_3<EpicKernel, Primitive>; + using Ray = EpicKernel::Ray_3; + using Tree = CGAL::AABB_tree<Traits>; + using Trees = std::vector<Tree>; +@@ -2939,7 +2939,7 @@ bool priv::is_patch_inside_of_model(const SurfacePatch &patch, + uint32_t priv::get_shape_point_index(const CutAOI &cut, const CutMesh &model) + { + // map is created during intersection by corefine visitor +- const VertexShapeMap &vert_shape_map = model.property_map<VI, const IntersectingElement *>(vert_shape_map_name).first; ++ VertexShapeMap &vert_shape_map = model.property_map<VI, const IntersectingElement *>(vert_shape_map_name).value(); + // for each half edge of outline + for (HI hi : cut.second) { + VI vi = model.source(hi); +@@ -2964,7 +2964,7 @@ priv::SurfacePatch priv::separate_patch(const std::vector<FI>& fis, + patch_new.model_id = patch.model_id; + patch_new.shape_id = patch.shape_id; + // fix cvt +- CvtVI2VI cvt = patch_new.mesh.property_map<VI, VI>(patch_source_name).first; ++ CvtVI2VI cvt = patch_new.mesh.property_map<VI, VI>(patch_source_name).value(); + for (VI &vi : cvt) { + if (!vi.is_valid()) continue; + vi = cvt_from[vi]; +@@ -2984,7 +2984,7 @@ void priv::divide_patch(size_t i, SurfacePatchesEx &patches) + std::string patch_number_name = "f:patch_number"; + CutMesh::Property_map<FI,bool> is_processed = cm.add_property_map<FI, bool>(patch_number_name, false).first; + +- const CvtVI2VI& cvt_from = patch.mesh.property_map<VI, VI>(patch_source_name).first; ++ CvtVI2VI& cvt_from = patch.mesh.property_map<VI, VI>(patch_source_name).value(); + + std::vector<FI> fis; + fis.reserve(cm.faces().size()); +@@ -3171,7 +3171,7 @@ bool priv::is_over_whole_expoly(const CutAOI &cutAOI, + const CutMesh &mesh) + { + // NonInterupted contour is without other point and contain all from shape +- const VertexShapeMap &vert_shape_map = mesh.property_map<VI, const IntersectingElement*>(vert_shape_map_name).first; ++ VertexShapeMap &vert_shape_map = mesh.property_map<VI, const IntersectingElement*>(vert_shape_map_name).value(); + for (HI hi : cutAOI.second) { + const IntersectingElement *ie_s = vert_shape_map[mesh.source(hi)]; + const IntersectingElement *ie_t = vert_shape_map[mesh.target(hi)]; diff --git a/media-gfx/prusaslicer/files/prusaslicer-2.8.1-eigen3.patch b/media-gfx/prusaslicer/files/prusaslicer-2.8.1-eigen3.patch new file mode 100644 index 000000000000..e215125b1486 --- /dev/null +++ b/media-gfx/prusaslicer/files/prusaslicer-2.8.1-eigen3.patch @@ -0,0 +1,11 @@ +--- a/src/libslic3r/CMakeLists.txt ++++ b/src/libslic3r/CMakeLists.txt +@@ -629,7 +629,7 @@ target_link_libraries(libslic3r PRIVATE + int128 + ) + target_link_libraries(libslic3r PUBLIC +- Eigen3::Eigen ++ Eigen3 + semver + admesh + localesutils diff --git a/media-gfx/prusaslicer/files/prusaslicer-2.8.1-fixed-linking.patch b/media-gfx/prusaslicer/files/prusaslicer-2.8.1-fixed-linking.patch new file mode 100644 index 000000000000..2c7ab74a4c87 --- /dev/null +++ b/media-gfx/prusaslicer/files/prusaslicer-2.8.1-fixed-linking.patch @@ -0,0 +1,10 @@ +--- a/src/slic3r/CMakeLists.txt ++++ b/src/slic3r/CMakeLists.txt +@@ -376,6 +376,7 @@ set(SLIC3R_GUI_SOURCES + ) + + find_package(NanoSVG REQUIRED) ++find_package(OpenSSL REQUIRED) + + if (APPLE) + list(APPEND SLIC3R_GUI_SOURCES diff --git a/media-gfx/prusaslicer/files/prusaslicer-2.8.1-opencascade-7.8.0.patch b/media-gfx/prusaslicer/files/prusaslicer-2.8.1-opencascade-7.8.0.patch new file mode 100644 index 000000000000..1e37ce9baa19 --- /dev/null +++ b/media-gfx/prusaslicer/files/prusaslicer-2.8.1-opencascade-7.8.0.patch @@ -0,0 +1,20 @@ +--- a/src/occt_wrapper/CMakeLists.txt ++++ b/src/occt_wrapper/CMakeLists.txt +@@ -19,14 +19,11 @@ include(GenerateExportHeader) + + generate_export_header(OCCTWrapper) + +-find_package(OpenCASCADE 7.6.1 REQUIRED) ++find_package(OpenCASCADE REQUIRED) + + set(OCCT_LIBS +- TKXDESTEP +- TKSTEP +- TKSTEP209 +- TKSTEPAttr +- TKSTEPBase ++ TKDESTEP ++ TKDESTL + TKXCAF + TKXSBase + TKVCAF diff --git a/media-gfx/prusaslicer/prusaslicer-9999.ebuild b/media-gfx/prusaslicer/prusaslicer-9999.ebuild index 2bb72a7c183f..e1c44c35352b 100644 --- a/media-gfx/prusaslicer/prusaslicer-9999.ebuild +++ b/media-gfx/prusaslicer/prusaslicer-9999.ebuild @@ -62,18 +62,26 @@ DEPEND="${RDEPEND} PATCHES=( "${FILESDIR}/${PN}-2.6.0-dont-force-link-to-wayland-and-x11.patch" "${FILESDIR}/${PN}-2.8.0-missing-includes.patch" - "${FILESDIR}/${PN}-2.8.0-fixed-linking.patch" + "${FILESDIR}/${PN}-2.8.1-fixed-linking.patch" + "${FILESDIR}/${PN}-2.8.1-eigen3.patch" + "${FILESDIR}/${PN}-2.8.1-cgal.patch" ) src_prepare() { if has_version ">=sci-libs/opencascade-7.8.0"; then - eapply "${FILESDIR}/prusaslicer-2.7.2-opencascade-7.8.0.patch" + eapply "${FILESDIR}/prusaslicer-2.8.1-opencascade-7.8.0.patch" fi sed -i -e 's/PrusaSlicer-${SLIC3R_VERSION}+UNKNOWN/PrusaSlicer-${SLIC3R_VERSION}+Gentoo/g' version.inc || die - sed -i -e 's/find_package(OpenCASCADE 7.6.2 REQUIRED)/find_package(OpenCASCADE REQUIRED)/g' \ + sed -i -e 's/find_package(OpenCASCADE 7.6.[0-9] REQUIRED)/find_package(OpenCASCADE REQUIRED)/g' \ src/occt_wrapper/CMakeLists.txt || die + + find . -type f \( -name '*.cpp' -o -name '*.h' -o -name '*.hpp' \) -exec \ + sed -i 's|#include <Eigen/|#include <eigen3/Eigen/|g' {} + || die + find . -type f \( -name '*.cpp' -o -name '*.h' -o -name '*.hpp' \) -exec \ + sed -i 's|#include <unsupported/Eigen/|#include <eigen3/unsupported/Eigen/|g' {} + || die + cmake_src_prepare } |