567 lines
14 KiB
CMake
567 lines
14 KiB
CMake
|
cmake_minimum_required(VERSION 3.13)
|
||
|
project(libslic3r)
|
||
|
|
||
|
include(PrecompiledHeader)
|
||
|
|
||
|
string(TIMESTAMP COMPILE_TIME %Y%m%d-%H%M%S)
|
||
|
set(SLIC3R_BUILD_TIME ${COMPILE_TIME})
|
||
|
|
||
|
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)
|
||
|
endif()
|
||
|
|
||
|
set(lisbslic3r_sources
|
||
|
ArcFitter.cpp
|
||
|
ArcFitter.hpp
|
||
|
pchheader.cpp
|
||
|
pchheader.hpp
|
||
|
AABBTreeIndirect.hpp
|
||
|
AABBTreeLines.hpp
|
||
|
AABBMesh.hpp
|
||
|
AABBMesh.cpp
|
||
|
AnyPtr.hpp
|
||
|
AStar.hpp
|
||
|
BoundingBox.cpp
|
||
|
BoundingBox.hpp
|
||
|
BridgeDetector.cpp
|
||
|
BridgeDetector.hpp
|
||
|
FaceDetector.cpp
|
||
|
FaceDetector.hpp
|
||
|
Brim.cpp
|
||
|
Brim.hpp
|
||
|
BuildVolume.cpp
|
||
|
BuildVolume.hpp
|
||
|
Calib.cpp
|
||
|
Calib.hpp
|
||
|
Circle.cpp
|
||
|
Circle.hpp
|
||
|
clipper.cpp
|
||
|
clipper.hpp
|
||
|
ClipperUtils.cpp
|
||
|
ClipperUtils.hpp
|
||
|
Clipper2Utils.cpp
|
||
|
Clipper2Utils.hpp
|
||
|
Color.cpp
|
||
|
Color.hpp
|
||
|
Config.cpp
|
||
|
Config.hpp
|
||
|
CurveAnalyzer.cpp
|
||
|
CurveAnalyzer.hpp
|
||
|
CutUtils.cpp
|
||
|
CutUtils.hpp
|
||
|
EdgeGrid.cpp
|
||
|
EdgeGrid.hpp
|
||
|
ElephantFootCompensation.cpp
|
||
|
ElephantFootCompensation.hpp
|
||
|
enum_bitmask.hpp
|
||
|
ExPolygon.cpp
|
||
|
ExPolygon.hpp
|
||
|
Extruder.cpp
|
||
|
Extruder.hpp
|
||
|
ExtrusionEntity.cpp
|
||
|
ExtrusionEntity.hpp
|
||
|
ExtrusionEntityCollection.cpp
|
||
|
ExtrusionEntityCollection.hpp
|
||
|
ExtrusionSimulator.cpp
|
||
|
ExtrusionSimulator.hpp
|
||
|
FileParserError.hpp
|
||
|
Fill/Fill.cpp
|
||
|
Fill/Fill.hpp
|
||
|
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/FillConcentricInternal.cpp
|
||
|
Fill/FillConcentricInternal.hpp
|
||
|
Fill/FillCrossHatch.cpp
|
||
|
Fill/FillCrossHatch.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
|
||
|
FlushVolCalc.cpp
|
||
|
FlushVolCalc.hpp
|
||
|
format.hpp
|
||
|
Format/3mf.cpp
|
||
|
Format/3mf.hpp
|
||
|
Format/bbs_3mf.cpp
|
||
|
Format/bbs_3mf.hpp
|
||
|
Format/AMF.cpp
|
||
|
Format/AMF.hpp
|
||
|
Format/OBJ.cpp
|
||
|
Format/OBJ.hpp
|
||
|
Format/objparser.cpp
|
||
|
Format/objparser.hpp
|
||
|
Format/STEP.cpp
|
||
|
Format/STEP.hpp
|
||
|
Format/STL.cpp
|
||
|
Format/STL.hpp
|
||
|
Format/SL1.hpp
|
||
|
Format/SL1.cpp
|
||
|
Format/svg.hpp
|
||
|
Format/svg.cpp
|
||
|
GCode/ThumbnailData.cpp
|
||
|
GCode/ThumbnailData.hpp
|
||
|
GCode/CoolingBuffer.cpp
|
||
|
GCode/CoolingBuffer.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/ToolOrdering.cpp
|
||
|
GCode/ToolOrdering.hpp
|
||
|
GCode/WipeTower.cpp
|
||
|
GCode/WipeTower.hpp
|
||
|
GCode/GCodeProcessor.cpp
|
||
|
GCode/GCodeProcessor.hpp
|
||
|
GCode/AvoidCrossingPerimeters.cpp
|
||
|
GCode/AvoidCrossingPerimeters.hpp
|
||
|
GCode/ConflictChecker.cpp
|
||
|
GCode/ConflictChecker.hpp
|
||
|
GCode.cpp
|
||
|
GCode.hpp
|
||
|
GCodeReader.cpp
|
||
|
GCodeReader.hpp
|
||
|
# GCodeSender.cpp
|
||
|
# GCodeSender.hpp
|
||
|
GCodeWriter.cpp
|
||
|
GCodeWriter.hpp
|
||
|
Geometry.cpp
|
||
|
Geometry.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.cpp
|
||
|
Geometry/Voronoi.hpp
|
||
|
Geometry/VoronoiOffset.cpp
|
||
|
Geometry/VoronoiOffset.hpp
|
||
|
Geometry/VoronoiUtils.hpp
|
||
|
Geometry/VoronoiUtils.cpp
|
||
|
Geometry/VoronoiUtilsCgal.cpp
|
||
|
Geometry/VoronoiUtilsCgal.hpp
|
||
|
Geometry/VoronoiVisualUtils.hpp
|
||
|
Int128.hpp
|
||
|
InternalBridgeDetector.cpp
|
||
|
InternalBridgeDetector.hpp
|
||
|
JumpPointSearch.hpp
|
||
|
JumpPointSearch.cpp
|
||
|
KDTreeIndirect.hpp
|
||
|
Layer.cpp
|
||
|
Layer.hpp
|
||
|
LayerRegion.cpp
|
||
|
libslic3r.h
|
||
|
Line.cpp
|
||
|
Line.hpp
|
||
|
BlacklistedLibraryCheck.cpp
|
||
|
BlacklistedLibraryCheck.hpp
|
||
|
LocalesUtils.cpp
|
||
|
LocalesUtils.hpp
|
||
|
Model.cpp
|
||
|
Model.hpp
|
||
|
ModelArrange.hpp
|
||
|
ModelArrange.cpp
|
||
|
MultiMaterialSegmentation.cpp
|
||
|
MultiMaterialSegmentation.hpp
|
||
|
Measure.hpp
|
||
|
Measure.cpp
|
||
|
MeasureUtils.hpp
|
||
|
CustomGCode.cpp
|
||
|
CustomGCode.hpp
|
||
|
Arrange.hpp
|
||
|
Arrange.cpp
|
||
|
NormalUtils.cpp
|
||
|
NormalUtils.hpp
|
||
|
ObjColorUtils.cpp
|
||
|
ObjColorUtils.hpp
|
||
|
Orient.hpp
|
||
|
Orient.cpp
|
||
|
MultiPoint.cpp
|
||
|
MultiPoint.hpp
|
||
|
MutablePriorityQueue.hpp
|
||
|
ObjectID.cpp
|
||
|
ObjectID.hpp
|
||
|
ParameterUtils.cpp
|
||
|
ParameterUtils.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
|
||
|
ProjectTask.cpp
|
||
|
ProjectTask.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
|
||
|
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
|
||
|
Support/SupportMaterial.cpp
|
||
|
Support/SupportMaterial.hpp
|
||
|
Support/TreeSupport.hpp
|
||
|
Support/TreeSupport.cpp
|
||
|
Support/TreeSupport3D.hpp
|
||
|
Support/TreeSupport3D.cpp
|
||
|
Support/TreeModelVolumes.hpp
|
||
|
Support/TreeModelVolumes.cpp
|
||
|
Support/TreeSupportCommon.hpp
|
||
|
MinimumSpanningTree.hpp
|
||
|
MinimumSpanningTree.cpp
|
||
|
Surface.cpp
|
||
|
Surface.hpp
|
||
|
SurfaceCollection.cpp
|
||
|
SurfaceCollection.hpp
|
||
|
SurfaceMesh.hpp
|
||
|
SVG.cpp
|
||
|
SVG.hpp
|
||
|
Technologies.hpp
|
||
|
Tesselate.cpp
|
||
|
Tesselate.hpp
|
||
|
TriangleMesh.cpp
|
||
|
TriangleMesh.hpp
|
||
|
TriangleMeshSlicer.cpp
|
||
|
TriangleMeshSlicer.hpp
|
||
|
MeshSplitImpl.hpp
|
||
|
TriangulateWall.hpp
|
||
|
TriangulateWall.cpp
|
||
|
utils.cpp
|
||
|
Utils.hpp
|
||
|
Time.cpp
|
||
|
Time.hpp
|
||
|
Thread.cpp
|
||
|
Thread.hpp
|
||
|
TriangleSelector.cpp
|
||
|
TriangleSelector.hpp
|
||
|
TriangleSetSampling.cpp
|
||
|
TriangleSetSampling.hpp
|
||
|
MTUtils.hpp
|
||
|
VariableWidth.cpp
|
||
|
VariableWidth.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
|
||
|
SLA/Pad.hpp
|
||
|
SLA/Pad.cpp
|
||
|
SLA/SupportTreeBuilder.hpp
|
||
|
SLA/SupportTreeMesher.hpp
|
||
|
SLA/SupportTreeMesher.cpp
|
||
|
SLA/SupportTreeBuildsteps.hpp
|
||
|
SLA/SupportTreeBuildsteps.cpp
|
||
|
SLA/SupportTreeBuilder.cpp
|
||
|
SLA/Concurrency.hpp
|
||
|
SLA/SupportTree.hpp
|
||
|
SLA/SupportTree.cpp
|
||
|
# SLA/SupportTreeIGL.cpp
|
||
|
SLA/Rotfinder.hpp
|
||
|
SLA/Rotfinder.cpp
|
||
|
SLA/BoostAdapter.hpp
|
||
|
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/IndexedMesh.hpp
|
||
|
SLA/IndexedMesh.cpp
|
||
|
SLA/Clustering.hpp
|
||
|
SLA/Clustering.cpp
|
||
|
SLA/ReprojectPointsOnMesh.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/SkeletalTrapezoidation.hpp
|
||
|
Arachne/SkeletalTrapezoidation.cpp
|
||
|
Arachne/SkeletalTrapezoidationEdge.hpp
|
||
|
Arachne/SkeletalTrapezoidationGraph.hpp
|
||
|
Arachne/SkeletalTrapezoidationGraph.cpp
|
||
|
Arachne/SkeletalTrapezoidationJoint.hpp
|
||
|
Arachne/WallToolPaths.hpp
|
||
|
Arachne/WallToolPaths.cpp
|
||
|
Shape/TextShape.hpp
|
||
|
Shape/TextShape.cpp
|
||
|
RegionExpansion.hpp
|
||
|
RegionExpansion.cpp
|
||
|
ClipperZUtils.hpp
|
||
|
)
|
||
|
|
||
|
if (APPLE)
|
||
|
list(APPEND lisbslic3r_sources
|
||
|
MacUtils.mm
|
||
|
Format/ModelIO.hpp
|
||
|
Format/ModelIO.mm
|
||
|
)
|
||
|
endif ()
|
||
|
|
||
|
add_library(libslic3r STATIC ${lisbslic3r_sources}
|
||
|
"${CMAKE_CURRENT_BINARY_DIR}/libslic3r_version.h"
|
||
|
${OpenVDBUtils_SOURCES})
|
||
|
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${lisbslic3r_sources})
|
||
|
|
||
|
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)
|
||
|
find_package(OpenCV REQUIRED core)
|
||
|
cmake_policy(POP)
|
||
|
|
||
|
add_library(libslic3r_cgal STATIC MeshBoolean.cpp MeshBoolean.hpp TryCatchSignal.hpp
|
||
|
TryCatchSignal.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()
|
||
|
|
||
|
if (CMAKE_COMPILER_IS_GNUCC AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 14.1)
|
||
|
set_property(TARGET libslic3r PROPERTY CXX_STANDARD 17)
|
||
|
set_property(TARGET libslic3r PROPERTY CXX_EXTENSIONS OFF)
|
||
|
set_property(TARGET libslic3r_cgal PROPERTY CXX_STANDARD 17)
|
||
|
set_property(TARGET libslic3r_cgal PROPERTY CXX_EXTENSIONS OFF)
|
||
|
endif()
|
||
|
|
||
|
target_link_libraries(libslic3r_cgal PRIVATE ${_cgal_tgt} libigl mcut)
|
||
|
|
||
|
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 the OCCT and related libraries
|
||
|
set(OpenCASCADE_DIR "${CMAKE_PREFIX_PATH}/lib/cmake/occt")
|
||
|
find_package(OpenCASCADE REQUIRED)
|
||
|
target_include_directories(libslic3r PUBLIC ${OpenCASCADE_INCLUDE_DIR})
|
||
|
|
||
|
set(OCCT_LIBS
|
||
|
TKXDESTEP
|
||
|
TKSTEP
|
||
|
TKSTEP209
|
||
|
TKSTEPAttr
|
||
|
TKSTEPBase
|
||
|
TKXCAF
|
||
|
TKXSBase
|
||
|
TKVCAF
|
||
|
TKCAF
|
||
|
TKLCAF
|
||
|
TKCDF
|
||
|
TKV3d
|
||
|
TKService
|
||
|
TKMesh
|
||
|
TKBO
|
||
|
TKPrim
|
||
|
TKHLR
|
||
|
TKShHealing
|
||
|
TKTopAlgo
|
||
|
TKGeomAlgo
|
||
|
TKBRep
|
||
|
TKGeomBase
|
||
|
TKG3d
|
||
|
TKG2d
|
||
|
TKMath
|
||
|
TKernel
|
||
|
)
|
||
|
|
||
|
|
||
|
target_link_libraries(libslic3r
|
||
|
libnest2d
|
||
|
admesh
|
||
|
cereal
|
||
|
libigl
|
||
|
miniz
|
||
|
boost_libs
|
||
|
clipper
|
||
|
nowide
|
||
|
${EXPAT_LIBRARIES}
|
||
|
glu-libtess
|
||
|
qhull
|
||
|
semver
|
||
|
TBB::tbb
|
||
|
TBB::tbbmalloc
|
||
|
libslic3r_cgal
|
||
|
${CMAKE_DL_LIBS}
|
||
|
PNG::PNG
|
||
|
ZLIB::ZLIB
|
||
|
${OCCT_LIBS}
|
||
|
Clipper2
|
||
|
mcut
|
||
|
opencv_world
|
||
|
)
|
||
|
|
||
|
if(NOT WIN32)
|
||
|
target_link_libraries(libslic3r freetype)
|
||
|
if (NOT APPLE)
|
||
|
target_link_libraries(libslic3r fontconfig)
|
||
|
endif()
|
||
|
endif()
|
||
|
|
||
|
if (APPLE)
|
||
|
find_library(FOUNDATION Foundation REQUIRED)
|
||
|
find_library(MODELIO ModelIO REQUIRED)
|
||
|
target_link_libraries(libslic3r ${FOUNDATION} ${MODELIO})
|
||
|
endif ()
|
||
|
|
||
|
if (TARGET OpenVDB::openvdb)
|
||
|
target_link_libraries(libslic3r OpenVDB::openvdb)
|
||
|
endif()
|
||
|
|
||
|
if(WIN32)
|
||
|
target_link_libraries(libslic3r Psapi.lib)
|
||
|
endif()
|
||
|
|
||
|
if(SLIC3R_PROFILE)
|
||
|
target_link_libraries(libslic3r Shiny)
|
||
|
endif()
|
||
|
|
||
|
if (SLIC3R_PCH AND NOT SLIC3R_SYNTAXONLY)
|
||
|
add_precompiled_header(libslic3r pchheader.hpp FORCEINCLUDE)
|
||
|
endif ()
|