mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-08-05 15:30:45 +08:00

During layer change, instead of generating the gcode, generate a placeholder tag. Then at the end of layer processing replace this tag with a ramping travel move. This solves the issue, that one does not know the starting point of the current layer where the layer change gcode would be originally generate. The ramping layer changes uses smoothing of the ramping travel. Also it is adjusted in such a way that it increases the ramp angle when the travel is too short, to always reach the next layer.
620 lines
17 KiB
CMake
620 lines
17 KiB
CMake
#/|/ Copyright (c) Prusa Research 2018 - 2023 Tomáš Mészáros @tamasmeszaros, Oleksandra Iushchenko @YuSanka, Enrico Turri @enricoturri1966, Vojtěch Bubník @bubnikv, Pavel Mikuš @Godrak, Lukáš Hejl @hejllukas, Lukáš Matěna @lukasmatena, Filip Sykala @Jony01, David Kocík @kocikdav, Vojtěch Král @vojtechkral
|
|
#/|/ Copyright (c) BambuStudio 2023 manch1n @manch1n
|
|
#/|/ Copyright (c) 2023 Mimoja @Mimoja
|
|
#/|/ Copyright (c) 2022 ole00 @ole00
|
|
#/|/
|
|
#/|/ PrusaSlicer is released under the terms of the AGPLv3 or higher
|
|
#/|/
|
|
cmake_minimum_required(VERSION 3.13)
|
|
project(libslic3r)
|
|
|
|
include(PrecompiledHeader)
|
|
|
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libslic3r_version.h.in ${CMAKE_CURRENT_BINARY_DIR}/libslic3r_version.h @ONLY)
|
|
|
|
if (MINGW)
|
|
add_compile_options(-Wa,-mbig-obj)
|
|
endif ()
|
|
|
|
set(OpenVDBUtils_SOURCES "")
|
|
if (TARGET OpenVDB::openvdb)
|
|
set(OpenVDBUtils_SOURCES OpenVDBUtils.cpp OpenVDBUtils.hpp OpenVDBUtilsLegacy.hpp)
|
|
endif()
|
|
|
|
find_package(LibBGCode REQUIRED COMPONENTS Convert)
|
|
slic3r_remap_configs(LibBGCode::bgcode_core RelWithDebInfo Release)
|
|
slic3r_remap_configs(LibBGCode::bgcode_binarize RelWithDebInfo Release)
|
|
slic3r_remap_configs(LibBGCode::bgcode_convert RelWithDebInfo Release)
|
|
|
|
set(SLIC3R_SOURCES
|
|
pchheader.cpp
|
|
pchheader.hpp
|
|
AStar.hpp
|
|
AABBTreeIndirect.hpp
|
|
AABBTreeLines.hpp
|
|
AABBMesh.hpp
|
|
AABBMesh.cpp
|
|
Algorithm/PathSorting.hpp
|
|
Algorithm/RegionExpansion.hpp
|
|
Algorithm/RegionExpansion.cpp
|
|
AnyPtr.hpp
|
|
BoundingBox.cpp
|
|
BoundingBox.hpp
|
|
BridgeDetector.cpp
|
|
BridgeDetector.hpp
|
|
Brim.cpp
|
|
Brim.hpp
|
|
BuildVolume.cpp
|
|
BuildVolume.hpp
|
|
BoostAdapter.hpp
|
|
clipper.cpp
|
|
clipper.hpp
|
|
ClipperUtils.cpp
|
|
ClipperUtils.hpp
|
|
ClipperZUtils.hpp
|
|
Color.cpp
|
|
Color.hpp
|
|
Config.cpp
|
|
Config.hpp
|
|
CSGMesh/CSGMesh.hpp
|
|
CSGMesh/SliceCSGMesh.hpp
|
|
CSGMesh/ModelToCSGMesh.hpp
|
|
CSGMesh/PerformCSGMeshBooleans.hpp
|
|
CSGMesh/VoxelizeCSGMesh.hpp
|
|
CSGMesh/TriangleMeshAdapter.hpp
|
|
CSGMesh/CSGMeshCopy.hpp
|
|
EdgeGrid.cpp
|
|
EdgeGrid.hpp
|
|
ElephantFootCompensation.cpp
|
|
ElephantFootCompensation.hpp
|
|
Emboss.cpp
|
|
Emboss.hpp
|
|
EmbossShape.hpp
|
|
enum_bitmask.hpp
|
|
ExPolygon.cpp
|
|
ExPolygon.hpp
|
|
ExPolygonSerialize.hpp
|
|
ExPolygonsIndex.cpp
|
|
ExPolygonsIndex.hpp
|
|
Extruder.cpp
|
|
Extruder.hpp
|
|
ExtrusionEntity.cpp
|
|
ExtrusionEntity.hpp
|
|
ExtrusionEntityCollection.cpp
|
|
ExtrusionEntityCollection.hpp
|
|
ExtrusionRole.cpp
|
|
ExtrusionRole.hpp
|
|
ExtrusionSimulator.cpp
|
|
ExtrusionSimulator.hpp
|
|
FileParserError.hpp
|
|
Fill/Fill.cpp
|
|
Fill/Fill3DHoneycomb.cpp
|
|
Fill/Fill3DHoneycomb.hpp
|
|
Fill/FillAdaptive.cpp
|
|
Fill/FillAdaptive.hpp
|
|
Fill/FillBase.cpp
|
|
Fill/FillBase.hpp
|
|
Fill/FillConcentric.cpp
|
|
Fill/FillConcentric.hpp
|
|
Fill/FillEnsuring.cpp
|
|
Fill/FillEnsuring.hpp
|
|
Fill/FillHoneycomb.cpp
|
|
Fill/FillHoneycomb.hpp
|
|
Fill/FillGyroid.cpp
|
|
Fill/FillGyroid.hpp
|
|
Fill/FillPlanePath.cpp
|
|
Fill/FillPlanePath.hpp
|
|
Fill/FillLine.cpp
|
|
Fill/FillLine.hpp
|
|
Fill/FillLightning.cpp
|
|
Fill/FillLightning.hpp
|
|
Fill/Lightning/DistanceField.cpp
|
|
Fill/Lightning/DistanceField.hpp
|
|
Fill/Lightning/Generator.cpp
|
|
Fill/Lightning/Generator.hpp
|
|
Fill/Lightning/Layer.cpp
|
|
Fill/Lightning/Layer.hpp
|
|
Fill/Lightning/TreeNode.cpp
|
|
Fill/Lightning/TreeNode.hpp
|
|
Fill/FillRectilinear.cpp
|
|
Fill/FillRectilinear.hpp
|
|
Flow.cpp
|
|
Flow.hpp
|
|
format.hpp
|
|
Format/3mf.cpp
|
|
Format/3mf.hpp
|
|
Format/AMF.cpp
|
|
Format/AMF.hpp
|
|
Format/OBJ.cpp
|
|
Format/OBJ.hpp
|
|
Format/objparser.cpp
|
|
Format/objparser.hpp
|
|
Format/STL.cpp
|
|
Format/STL.hpp
|
|
Format/SLAArchiveWriter.hpp
|
|
Format/SLAArchiveWriter.cpp
|
|
Format/SLAArchiveReader.hpp
|
|
Format/SLAArchiveReader.cpp
|
|
Format/ZipperArchiveImport.hpp
|
|
Format/ZipperArchiveImport.cpp
|
|
Format/SL1.hpp
|
|
Format/SL1.cpp
|
|
Format/SL1_SVG.hpp
|
|
Format/SL1_SVG.cpp
|
|
Format/AnycubicSLA.hpp
|
|
Format/AnycubicSLA.cpp
|
|
Format/STEP.hpp
|
|
Format/STEP.cpp
|
|
Format/SVG.hpp
|
|
Format/SVG.cpp
|
|
Format/SLAArchiveFormatRegistry.hpp
|
|
Format/SLAArchiveFormatRegistry.cpp
|
|
GCode/ThumbnailData.cpp
|
|
GCode/ThumbnailData.hpp
|
|
GCode/Thumbnails.cpp
|
|
GCode/Thumbnails.hpp
|
|
GCode/ConflictChecker.cpp
|
|
GCode/ConflictChecker.hpp
|
|
GCode/CoolingBuffer.cpp
|
|
GCode/CoolingBuffer.hpp
|
|
GCode/ExtrusionProcessor.cpp
|
|
GCode/ExtrusionProcessor.hpp
|
|
GCode/FindReplace.cpp
|
|
GCode/FindReplace.hpp
|
|
GCode/LabelObjects.cpp
|
|
GCode/LabelObjects.hpp
|
|
GCode/GCodeWriter.cpp
|
|
GCode/GCodeWriter.hpp
|
|
GCode/PostProcessor.cpp
|
|
GCode/PostProcessor.hpp
|
|
GCode/PressureEqualizer.cpp
|
|
GCode/PressureEqualizer.hpp
|
|
GCode/PrintExtents.cpp
|
|
GCode/PrintExtents.hpp
|
|
GCode/RetractWhenCrossingPerimeters.cpp
|
|
GCode/RetractWhenCrossingPerimeters.hpp
|
|
GCode/SpiralVase.cpp
|
|
GCode/SpiralVase.hpp
|
|
GCode/SeamPlacer.cpp
|
|
GCode/SeamPlacer.hpp
|
|
GCode/SmoothPath.cpp
|
|
GCode/SmoothPath.hpp
|
|
GCode/ToolOrdering.cpp
|
|
GCode/ToolOrdering.hpp
|
|
GCode/Wipe.cpp
|
|
GCode/Wipe.hpp
|
|
GCode/WipeTower.cpp
|
|
GCode/WipeTower.hpp
|
|
GCode/WipeTowerIntegration.cpp
|
|
GCode/WipeTowerIntegration.hpp
|
|
GCode/GCodeProcessor.cpp
|
|
GCode/GCodeProcessor.hpp
|
|
GCode/AvoidCrossingPerimeters.cpp
|
|
GCode/AvoidCrossingPerimeters.hpp
|
|
GCode/Travels.cpp
|
|
GCode/Travels.hpp
|
|
GCode.cpp
|
|
GCode.hpp
|
|
GCodeReader.cpp
|
|
GCodeReader.hpp
|
|
# GCodeSender.cpp
|
|
# GCodeSender.hpp
|
|
Geometry.cpp
|
|
Geometry.hpp
|
|
Geometry/ArcWelder.cpp
|
|
Geometry/ArcWelder.hpp
|
|
Geometry/Bicubic.hpp
|
|
Geometry/Circle.cpp
|
|
Geometry/Circle.hpp
|
|
Geometry/ConvexHull.cpp
|
|
Geometry/ConvexHull.hpp
|
|
Geometry/Curves.hpp
|
|
Geometry/MedialAxis.cpp
|
|
Geometry/MedialAxis.hpp
|
|
Geometry/Voronoi.hpp
|
|
Geometry/VoronoiOffset.cpp
|
|
Geometry/VoronoiOffset.hpp
|
|
Geometry/VoronoiVisualUtils.hpp
|
|
Int128.hpp
|
|
JumpPointSearch.cpp
|
|
JumpPointSearch.hpp
|
|
KDTreeIndirect.hpp
|
|
Layer.cpp
|
|
Layer.hpp
|
|
LayerRegion.cpp
|
|
libslic3r.h
|
|
"${CMAKE_CURRENT_BINARY_DIR}/libslic3r_version.h"
|
|
Line.cpp
|
|
Line.hpp
|
|
BlacklistedLibraryCheck.cpp
|
|
BlacklistedLibraryCheck.hpp
|
|
LocalesUtils.cpp
|
|
LocalesUtils.hpp
|
|
CutUtils.cpp
|
|
CutUtils.hpp
|
|
Model.cpp
|
|
Model.hpp
|
|
ModelArrange.hpp
|
|
ModelArrange.cpp
|
|
MultiMaterialSegmentation.cpp
|
|
MultiMaterialSegmentation.hpp
|
|
MeshNormals.hpp
|
|
MeshNormals.cpp
|
|
Measure.hpp
|
|
Measure.cpp
|
|
MeasureUtils.hpp
|
|
CustomGCode.cpp
|
|
CustomGCode.hpp
|
|
Arrange/Arrange.hpp
|
|
Arrange/ArrangeImpl.hpp
|
|
Arrange/Items/ArrangeItem.hpp
|
|
Arrange/Items/ArrangeItem.cpp
|
|
Arrange/Items/SimpleArrangeItem.hpp
|
|
Arrange/Items/SimpleArrangeItem.cpp
|
|
Arrange/Items/TrafoOnlyArrangeItem.hpp
|
|
Arrange/Items/MutableItemTraits.hpp
|
|
Arrange/Items/ArbitraryDataStore.hpp
|
|
Arrange/ArrangeSettingsView.hpp
|
|
Arrange/ArrangeSettingsDb_AppCfg.hpp
|
|
Arrange/ArrangeSettingsDb_AppCfg.cpp
|
|
Arrange/Scene.hpp
|
|
Arrange/Scene.cpp
|
|
Arrange/SceneBuilder.hpp
|
|
Arrange/SceneBuilder.cpp
|
|
Arrange/Tasks/ArrangeTask.hpp
|
|
Arrange/Tasks/ArrangeTaskImpl.hpp
|
|
Arrange/Tasks/FillBedTask.hpp
|
|
Arrange/Tasks/FillBedTaskImpl.hpp
|
|
Arrange/Tasks/MultiplySelectionTask.hpp
|
|
Arrange/Tasks/MultiplySelectionTaskImpl.hpp
|
|
Arrange/SegmentedRectangleBed.hpp
|
|
Arrange/Core/ArrangeItemTraits.hpp
|
|
Arrange/Core/DataStoreTraits.hpp
|
|
Arrange/Core/ArrangeBase.hpp
|
|
Arrange/Core/PackingContext.hpp
|
|
Arrange/Core/ArrangeFirstFit.hpp
|
|
Arrange/Core/Beds.hpp
|
|
Arrange/Core/Beds.cpp
|
|
Arrange/Core/NFP/NFP.hpp
|
|
Arrange/Core/NFP/NFP.cpp
|
|
Arrange/Core/NFP/NFPConcave_CGAL.hpp
|
|
Arrange/Core/NFP/NFPConcave_CGAL.cpp
|
|
Arrange/Core/NFP/NFPConcave_Tesselate.hpp
|
|
Arrange/Core/NFP/NFPConcave_Tesselate.cpp
|
|
Arrange/Core/NFP/EdgeCache.hpp
|
|
Arrange/Core/NFP/EdgeCache.cpp
|
|
Arrange/Core/NFP/CircularEdgeIterator.hpp
|
|
Arrange/Core/NFP/NFPArrangeItemTraits.hpp
|
|
Arrange/Core/NFP/PackStrategyNFP.hpp
|
|
Arrange/Core/NFP/RectangleOverfitPackingStrategy.hpp
|
|
Arrange/Core/NFP/Kernels/KernelTraits.hpp
|
|
Arrange/Core/NFP/Kernels/GravityKernel.hpp
|
|
Arrange/Core/NFP/Kernels/TMArrangeKernel.hpp
|
|
Arrange/Core/NFP/Kernels/CompactifyKernel.hpp
|
|
Arrange/Core/NFP/Kernels/RectangleOverfitKernelWrapper.hpp
|
|
Arrange/Core/NFP/Kernels/SVGDebugOutputKernelWrapper.hpp
|
|
Arrange/Core/NFP/Kernels/KernelUtils.hpp
|
|
MultiPoint.cpp
|
|
MultiPoint.hpp
|
|
MutablePriorityQueue.hpp
|
|
NormalUtils.cpp
|
|
NormalUtils.hpp
|
|
NSVGUtils.cpp
|
|
NSVGUtils.hpp
|
|
ObjectID.cpp
|
|
ObjectID.hpp
|
|
PerimeterGenerator.cpp
|
|
PerimeterGenerator.hpp
|
|
PlaceholderParser.cpp
|
|
PlaceholderParser.hpp
|
|
Platform.cpp
|
|
Platform.hpp
|
|
Point.cpp
|
|
Point.hpp
|
|
Polygon.cpp
|
|
Polygon.hpp
|
|
MutablePolygon.cpp
|
|
MutablePolygon.hpp
|
|
PolygonTrimmer.cpp
|
|
PolygonTrimmer.hpp
|
|
Polyline.cpp
|
|
Polyline.hpp
|
|
Preset.cpp
|
|
Preset.hpp
|
|
PresetBundle.cpp
|
|
PresetBundle.hpp
|
|
PrincipalComponents2D.hpp
|
|
PrincipalComponents2D.cpp
|
|
AppConfig.cpp
|
|
AppConfig.hpp
|
|
Print.cpp
|
|
Print.hpp
|
|
PrintApply.cpp
|
|
PrintBase.cpp
|
|
PrintBase.hpp
|
|
PrintConfig.cpp
|
|
PrintConfig.hpp
|
|
PrintObject.cpp
|
|
PrintObjectSlice.cpp
|
|
PrintRegion.cpp
|
|
PointGrid.hpp
|
|
PNGReadWrite.hpp
|
|
PNGReadWrite.cpp
|
|
QuadricEdgeCollapse.cpp
|
|
QuadricEdgeCollapse.hpp
|
|
Semver.cpp
|
|
ShortEdgeCollapse.cpp
|
|
ShortEdgeCollapse.hpp
|
|
ShortestPath.cpp
|
|
ShortestPath.hpp
|
|
SLAPrint.cpp
|
|
SLAPrintSteps.cpp
|
|
SLAPrintSteps.hpp
|
|
SLAPrint.hpp
|
|
Slicing.cpp
|
|
Slicing.hpp
|
|
SlicesToTriangleMesh.hpp
|
|
SlicesToTriangleMesh.cpp
|
|
SlicingAdaptive.cpp
|
|
SlicingAdaptive.hpp
|
|
Subdivide.cpp
|
|
Subdivide.hpp
|
|
Support/SupportCommon.cpp
|
|
Support/SupportCommon.hpp
|
|
Support/SupportDebug.cpp
|
|
Support/SupportDebug.hpp
|
|
Support/SupportLayer.hpp
|
|
Support/SupportMaterial.cpp
|
|
Support/SupportMaterial.hpp
|
|
Support/SupportParameters.cpp
|
|
Support/SupportParameters.hpp
|
|
Support/OrganicSupport.cpp
|
|
Support/OrganicSupport.hpp
|
|
Support/TreeSupport.cpp
|
|
Support/TreeSupport.hpp
|
|
Support/TreeSupportCommon.cpp
|
|
Support/TreeSupportCommon.hpp
|
|
Support/TreeModelVolumes.cpp
|
|
Support/TreeModelVolumes.hpp
|
|
SupportSpotsGenerator.cpp
|
|
SupportSpotsGenerator.hpp
|
|
Surface.cpp
|
|
Surface.hpp
|
|
SurfaceCollection.cpp
|
|
SurfaceCollection.hpp
|
|
SurfaceMesh.hpp
|
|
SVG.cpp
|
|
SVG.hpp
|
|
Technologies.hpp
|
|
Tesselate.cpp
|
|
Tesselate.hpp
|
|
TextConfiguration.hpp
|
|
TriangleMesh.cpp
|
|
TriangleMesh.hpp
|
|
TriangleMeshSlicer.cpp
|
|
TriangleMeshSlicer.hpp
|
|
MeshSplitImpl.hpp
|
|
TriangulateWall.hpp
|
|
utils.cpp
|
|
Utils.hpp
|
|
Time.cpp
|
|
Time.hpp
|
|
Timer.cpp
|
|
Timer.hpp
|
|
Thread.cpp
|
|
Thread.hpp
|
|
TriangleSelector.cpp
|
|
TriangleSelector.hpp
|
|
TriangleSetSampling.cpp
|
|
TriangleSetSampling.hpp
|
|
TriangleSelectorWrapper.cpp
|
|
TriangleSelectorWrapper.hpp
|
|
MTUtils.hpp
|
|
Zipper.hpp
|
|
Zipper.cpp
|
|
MinAreaBoundingBox.hpp
|
|
MinAreaBoundingBox.cpp
|
|
miniz_extension.hpp
|
|
miniz_extension.cpp
|
|
MarchingSquares.hpp
|
|
Execution/Execution.hpp
|
|
Execution/ExecutionSeq.hpp
|
|
Execution/ExecutionTBB.hpp
|
|
Optimize/Optimizer.hpp
|
|
Optimize/NLoptOptimizer.hpp
|
|
Optimize/BruteforceOptimizer.hpp
|
|
${OpenVDBUtils_SOURCES}
|
|
SLA/Pad.hpp
|
|
SLA/Pad.cpp
|
|
SLA/SupportTreeBuilder.hpp
|
|
SLA/SupportTreeMesher.hpp
|
|
SLA/SupportTreeMesher.cpp
|
|
SLA/SupportTreeUtils.hpp
|
|
SLA/SupportTreeUtilsLegacy.hpp
|
|
SLA/SupportTreeBuilder.cpp
|
|
SLA/SupportTree.hpp
|
|
SLA/SupportTree.cpp
|
|
SLA/SupportTreeStrategies.hpp
|
|
# SLA/SupportTreeIGL.cpp
|
|
SLA/Rotfinder.hpp
|
|
SLA/Rotfinder.cpp
|
|
SLA/SpatIndex.hpp
|
|
SLA/SpatIndex.cpp
|
|
SLA/RasterBase.hpp
|
|
SLA/RasterBase.cpp
|
|
SLA/AGGRaster.hpp
|
|
SLA/RasterToPolygons.hpp
|
|
SLA/RasterToPolygons.cpp
|
|
SLA/ConcaveHull.hpp
|
|
SLA/ConcaveHull.cpp
|
|
SLA/Hollowing.hpp
|
|
SLA/Hollowing.cpp
|
|
SLA/JobController.hpp
|
|
SLA/SupportPoint.hpp
|
|
SLA/SupportPointGenerator.hpp
|
|
SLA/SupportPointGenerator.cpp
|
|
SLA/Clustering.hpp
|
|
SLA/Clustering.cpp
|
|
SLA/ReprojectPointsOnMesh.hpp
|
|
SLA/DefaultSupportTree.hpp
|
|
SLA/DefaultSupportTree.cpp
|
|
SLA/BranchingTreeSLA.hpp
|
|
SLA/BranchingTreeSLA.cpp
|
|
BranchingTree/BranchingTree.cpp
|
|
BranchingTree/BranchingTree.hpp
|
|
BranchingTree/PointCloud.cpp
|
|
BranchingTree/PointCloud.hpp
|
|
|
|
Arachne/BeadingStrategy/BeadingStrategy.hpp
|
|
Arachne/BeadingStrategy/BeadingStrategy.cpp
|
|
Arachne/BeadingStrategy/BeadingStrategyFactory.hpp
|
|
Arachne/BeadingStrategy/BeadingStrategyFactory.cpp
|
|
Arachne/BeadingStrategy/DistributedBeadingStrategy.hpp
|
|
Arachne/BeadingStrategy/DistributedBeadingStrategy.cpp
|
|
Arachne/BeadingStrategy/LimitedBeadingStrategy.hpp
|
|
Arachne/BeadingStrategy/LimitedBeadingStrategy.cpp
|
|
Arachne/BeadingStrategy/OuterWallInsetBeadingStrategy.hpp
|
|
Arachne/BeadingStrategy/OuterWallInsetBeadingStrategy.cpp
|
|
Arachne/BeadingStrategy/RedistributeBeadingStrategy.hpp
|
|
Arachne/BeadingStrategy/RedistributeBeadingStrategy.cpp
|
|
Arachne/BeadingStrategy/WideningBeadingStrategy.hpp
|
|
Arachne/BeadingStrategy/WideningBeadingStrategy.cpp
|
|
Arachne/utils/ExtrusionJunction.hpp
|
|
Arachne/utils/ExtrusionJunction.cpp
|
|
Arachne/utils/ExtrusionLine.hpp
|
|
Arachne/utils/ExtrusionLine.cpp
|
|
Arachne/utils/HalfEdge.hpp
|
|
Arachne/utils/HalfEdgeGraph.hpp
|
|
Arachne/utils/HalfEdgeNode.hpp
|
|
Arachne/utils/SparseGrid.hpp
|
|
Arachne/utils/SparsePointGrid.hpp
|
|
Arachne/utils/SparseLineGrid.hpp
|
|
Arachne/utils/SquareGrid.hpp
|
|
Arachne/utils/SquareGrid.cpp
|
|
Arachne/utils/PolygonsPointIndex.hpp
|
|
Arachne/utils/PolygonsSegmentIndex.hpp
|
|
Arachne/utils/PolylineStitcher.hpp
|
|
Arachne/utils/PolylineStitcher.cpp
|
|
Arachne/utils/VoronoiUtils.hpp
|
|
Arachne/utils/VoronoiUtils.cpp
|
|
Arachne/SkeletalTrapezoidation.hpp
|
|
Arachne/SkeletalTrapezoidation.cpp
|
|
Arachne/SkeletalTrapezoidationEdge.hpp
|
|
Arachne/SkeletalTrapezoidationGraph.hpp
|
|
Arachne/SkeletalTrapezoidationGraph.cpp
|
|
Arachne/SkeletalTrapezoidationJoint.hpp
|
|
Arachne/WallToolPaths.hpp
|
|
Arachne/WallToolPaths.cpp
|
|
StaticMap.hpp
|
|
)
|
|
|
|
add_library(libslic3r STATIC ${SLIC3R_SOURCES})
|
|
|
|
if (WIN32)
|
|
target_compile_definitions(libslic3r PUBLIC NOMINMAX)
|
|
endif()
|
|
|
|
foreach(_source IN ITEMS ${SLIC3R_SOURCES})
|
|
get_filename_component(_source_path "${_source}" PATH)
|
|
string(REPLACE "/" "\\" _group_path "${_source_path}")
|
|
source_group("${_group_path}" FILES "${_source}")
|
|
endforeach()
|
|
|
|
if (SLIC3R_STATIC)
|
|
set(CGAL_Boost_USE_STATIC_LIBS ON CACHE BOOL "" FORCE)
|
|
endif ()
|
|
set(CGAL_DO_NOT_WARN_ABOUT_CMAKE_BUILD_TYPE ON CACHE BOOL "" FORCE)
|
|
|
|
cmake_policy(PUSH)
|
|
cmake_policy(SET CMP0011 NEW)
|
|
find_package(CGAL REQUIRED)
|
|
cmake_policy(POP)
|
|
|
|
add_library(libslic3r_cgal STATIC
|
|
CutSurface.hpp CutSurface.cpp
|
|
Geometry/VoronoiUtilsCgal.hpp Geometry/VoronoiUtilsCgal.cpp
|
|
IntersectionPoints.hpp IntersectionPoints.cpp
|
|
MeshBoolean.hpp MeshBoolean.cpp
|
|
TryCatchSignal.hpp TryCatchSignal.cpp
|
|
Triangulation.hpp Triangulation.cpp
|
|
)
|
|
target_include_directories(libslic3r_cgal PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
|
|
|
|
# Reset compile options of libslic3r_cgal. Despite it being linked privately, CGAL options
|
|
# (-frounding-math) still propagate to dependent libs which is not desired.
|
|
get_target_property(_cgal_tgt CGAL::CGAL ALIASED_TARGET)
|
|
if (NOT TARGET ${_cgal_tgt})
|
|
set (_cgal_tgt CGAL::CGAL)
|
|
endif ()
|
|
get_target_property(_opts ${_cgal_tgt} INTERFACE_COMPILE_OPTIONS)
|
|
if (_opts)
|
|
set(_opts_bad "${_opts}")
|
|
set(_opts_good "${_opts}")
|
|
list(FILTER _opts_bad INCLUDE REGEX frounding-math)
|
|
list(FILTER _opts_good EXCLUDE REGEX frounding-math)
|
|
set_target_properties(${_cgal_tgt} PROPERTIES INTERFACE_COMPILE_OPTIONS "${_opts_good}")
|
|
target_compile_options(libslic3r_cgal PRIVATE "${_opts_bad}")
|
|
endif()
|
|
|
|
target_link_libraries(libslic3r_cgal PRIVATE ${_cgal_tgt} libigl)
|
|
|
|
if (MSVC AND "${CMAKE_SIZEOF_VOID_P}" STREQUAL "4") # 32 bit MSVC workaround
|
|
target_compile_definitions(libslic3r_cgal PRIVATE CGAL_DO_NOT_USE_MPZF)
|
|
endif ()
|
|
|
|
encoding_check(libslic3r)
|
|
|
|
target_compile_definitions(libslic3r PUBLIC -DUSE_TBB -DTBB_USE_CAPTURED_EXCEPTION=0)
|
|
target_include_directories(libslic3r PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} PUBLIC ${CMAKE_CURRENT_BINARY_DIR})
|
|
target_include_directories(libslic3r PUBLIC ${EXPAT_INCLUDE_DIRS})
|
|
|
|
find_package(JPEG REQUIRED)
|
|
|
|
target_link_libraries(libslic3r
|
|
libnest2d
|
|
admesh
|
|
libcereal
|
|
libigl
|
|
miniz
|
|
boost_libs
|
|
clipper
|
|
nowide
|
|
libexpat
|
|
glu-libtess
|
|
qhull
|
|
semver
|
|
TBB::tbb
|
|
TBB::tbbmalloc
|
|
libslic3r_cgal
|
|
${CMAKE_DL_LIBS}
|
|
PNG::PNG
|
|
ZLIB::ZLIB
|
|
JPEG::JPEG
|
|
qoi
|
|
LibBGCode::bgcode_convert
|
|
)
|
|
|
|
if (APPLE)
|
|
# TODO: we need to fix notarization with the separate shared library
|
|
target_link_libraries(libslic3r OCCTWrapper)
|
|
endif ()
|
|
|
|
if (TARGET OpenVDB::openvdb)
|
|
target_link_libraries(libslic3r OpenVDB::openvdb)
|
|
endif()
|
|
|
|
if(WIN32)
|
|
target_link_libraries(libslic3r Psapi.lib)
|
|
endif()
|
|
|
|
if (APPLE)
|
|
# This flag prevents the need for minimum SDK version 10.14
|
|
# currently, PS targets v10.12
|
|
target_compile_options(libslic3r PUBLIC "-fno-aligned-allocation")
|
|
target_compile_options(libslic3r_cgal PUBLIC "-fno-aligned-allocation")
|
|
endif ()
|
|
|
|
if (SLIC3R_PCH AND NOT SLIC3R_SYNTAXONLY)
|
|
add_precompiled_header(libslic3r pchheader.hpp FORCEINCLUDE)
|
|
endif ()
|