From 6ed68342e05b9b597be25efe94abd780ac783591 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Tue, 28 Jan 2025 01:07:27 +0800 Subject: [PATCH] fix build errors (#8210) * fix build errors * fix windows * fix flatpak --- .github/workflows/build_deps.yml | 5 ----- cmake/modules/Findlibnoise.cmake | 2 +- deps/CMakeLists.txt | 1 + flatpak/io.github.softfever.OrcaSlicer.yml | 5 +++++ src/libslic3r/PerimeterGenerator.cpp | 10 +++++----- 5 files changed, 12 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build_deps.yml b/.github/workflows/build_deps.yml index e9ce9a856..163cbca23 100644 --- a/.github/workflows/build_deps.yml +++ b/.github/workflows/build_deps.yml @@ -66,11 +66,6 @@ jobs: working-directory: ${{ github.workspace }} run: | choco install strawberryperl - $Folder = ${{ github.workspace }}/deps/build - if (!(Test-Path -Path $Folder)) { - mkdir ${{ github.workspace }}/deps/build - mkdir ${{ github.workspace }}/deps/build/OrcaSlicer_dep - } .\build_release_vs2022.bat deps .\build_release_vs2022.bat pack cd ${{ github.workspace }}/deps/build diff --git a/cmake/modules/Findlibnoise.cmake b/cmake/modules/Findlibnoise.cmake index 70a5da951..f40ce0fab 100644 --- a/cmake/modules/Findlibnoise.cmake +++ b/cmake/modules/Findlibnoise.cmake @@ -1,5 +1,5 @@ find_path(LIBNOISE_INCLUDE_DIR libnoise/noise.h) -find_library(LIBNOISE_LIBRARY NAMES libnoise libnoise_static) +find_library(LIBNOISE_LIBRARY NAMES libnoise libnoise_static liblibnoise_static) include(FindPackageHandleStandardArgs) find_package_handle_standard_args(libnoise DEFAULT_MSG LIBNOISE_LIBRARY diff --git a/deps/CMakeLists.txt b/deps/CMakeLists.txt index 8b7dbe09e..77cae3382 100644 --- a/deps/CMakeLists.txt +++ b/deps/CMakeLists.txt @@ -361,6 +361,7 @@ set(_dep_list ${PNG_PKG} ${ZLIB_PKG} ${EXPAT_PKG} + dep_libnoise ) if (MSVC) diff --git a/flatpak/io.github.softfever.OrcaSlicer.yml b/flatpak/io.github.softfever.OrcaSlicer.yml index c613acf42..73ab58b17 100755 --- a/flatpak/io.github.softfever.OrcaSlicer.yml +++ b/flatpak/io.github.softfever.OrcaSlicer.yml @@ -260,6 +260,11 @@ modules: url: https://github.com/glfw/glfw/archive/refs/tags/3.3.7.zip dest: external-packages/GLFW sha256: e02d956935e5b9fb4abf90e2c2e07c9a0526d7eacae8ee5353484c69a2a76cd0 + # libnoise + - type: file + url: https://github.com/SoftFever/Orca-deps-libnoise/archive/refs/tags/1.0.zip + dest: external-packages/libnoise + sha256: 96ffd6cc47898dd8147aab53d7d1b1911b507d9dbaecd5613ca2649468afd8b6 - name: OrcaSlicer buildsystem: simple diff --git a/src/libslic3r/PerimeterGenerator.cpp b/src/libslic3r/PerimeterGenerator.cpp index 1ad1e5b90..99ab5a6e0 100644 --- a/src/libslic3r/PerimeterGenerator.cpp +++ b/src/libslic3r/PerimeterGenerator.cpp @@ -1035,7 +1035,7 @@ static ExtrusionEntityCollection traverse_extrusions(const PerimeterGenerator& p const auto& config = regions.begin()->first; const bool fuzzify = should_fuzzify(config, perimeter_generator.layer_id, extrusion->inset_idx, is_contour); if (fuzzify) - fuzzy_extrusion_line(extrusion.junctions, slice_z, config); + fuzzy_extrusion_line(extrusion->junctions, slice_z, config); } else { // Find all affective regions std::vector> fuzzified_regions; @@ -1057,7 +1057,7 @@ static ExtrusionEntityCollection traverse_extrusions(const PerimeterGenerator& p // Fuzzy splitted extrusion if (std::all_of(splitted.begin(), splitted.end(), [](const Algorithm::SplitLineJunction& j) { return j.clipped; })) { // The entire polygon is fuzzified - fuzzy_extrusion_line(extrusion.junctions, slice_z, r.first); + fuzzy_extrusion_line(extrusion->junctions, slice_z, r.first); } else { const auto current_ext = extrusion->junctions; std::vector segment; @@ -1065,11 +1065,11 @@ static ExtrusionEntityCollection traverse_extrusions(const PerimeterGenerator& p extrusion->junctions.clear(); const auto fuzzy_current_segment = [&segment, &extrusion, &r, slice_z]() { - extrusion.junctions.push_back(segment.front()); + extrusion->junctions.push_back(segment.front()); const auto back = segment.back(); fuzzy_extrusion_line(segment, slice_z, r.first); - extrusion.junctions.insert(extrusion.junctions.end(), segment.begin(), segment.end()); - extrusion.junctions.push_back(back); + extrusion->junctions.insert(extrusion->junctions.end(), segment.begin(), segment.end()); + extrusion->junctions.push_back(back); segment.clear(); };