f8a5796ca5
SPE-1072 Working but flipped normals with the interior. Testing on treefrog passed Oversampling for hollowed mesh should not be less than 3x Flip back normals after simplify and remove redundant test code.
289 lines
6.6 KiB
CMake
289 lines
6.6 KiB
CMake
project(libslic3r)
|
|
cmake_minimum_required(VERSION 2.6)
|
|
|
|
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)
|
|
endif()
|
|
|
|
add_library(libslic3r STATIC
|
|
pchheader.cpp
|
|
pchheader.hpp
|
|
BoundingBox.cpp
|
|
BoundingBox.hpp
|
|
BridgeDetector.cpp
|
|
BridgeDetector.hpp
|
|
ClipperUtils.cpp
|
|
ClipperUtils.hpp
|
|
Config.cpp
|
|
Config.hpp
|
|
EdgeGrid.cpp
|
|
EdgeGrid.hpp
|
|
ElephantFootCompensation.cpp
|
|
ElephantFootCompensation.hpp
|
|
ExPolygon.cpp
|
|
ExPolygon.hpp
|
|
ExPolygonCollection.cpp
|
|
ExPolygonCollection.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/FillBase.cpp
|
|
Fill/FillBase.hpp
|
|
Fill/FillConcentric.cpp
|
|
Fill/FillConcentric.hpp
|
|
Fill/FillHoneycomb.cpp
|
|
Fill/FillHoneycomb.hpp
|
|
Fill/FillGyroid.cpp
|
|
Fill/FillGyroid.hpp
|
|
Fill/FillPlanePath.cpp
|
|
Fill/FillPlanePath.hpp
|
|
Fill/FillRectilinear.cpp
|
|
Fill/FillRectilinear.hpp
|
|
Fill/FillRectilinear2.cpp
|
|
Fill/FillRectilinear2.hpp
|
|
Fill/FillRectilinear3.cpp
|
|
Fill/FillRectilinear3.hpp
|
|
Flow.cpp
|
|
Flow.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/PRUS.cpp
|
|
Format/PRUS.hpp
|
|
Format/STL.cpp
|
|
Format/STL.hpp
|
|
GCode/Analyzer.cpp
|
|
GCode/Analyzer.hpp
|
|
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/PreviewData.cpp
|
|
GCode/PreviewData.hpp
|
|
GCode/PrintExtents.cpp
|
|
GCode/PrintExtents.hpp
|
|
GCode/SpiralVase.cpp
|
|
GCode/SpiralVase.hpp
|
|
GCode/ToolOrdering.cpp
|
|
GCode/ToolOrdering.hpp
|
|
GCode/WipeTower.cpp
|
|
GCode/WipeTower.hpp
|
|
GCode.cpp
|
|
GCode.hpp
|
|
GCodeReader.cpp
|
|
GCodeReader.hpp
|
|
# GCodeSender.cpp
|
|
# GCodeSender.hpp
|
|
GCodeTimeEstimator.cpp
|
|
GCodeTimeEstimator.hpp
|
|
GCodeWriter.cpp
|
|
GCodeWriter.hpp
|
|
Geometry.cpp
|
|
Geometry.hpp
|
|
Int128.hpp
|
|
KDTreeIndirect.hpp
|
|
Layer.cpp
|
|
Layer.hpp
|
|
LayerRegion.cpp
|
|
libslic3r.h
|
|
"${CMAKE_CURRENT_BINARY_DIR}/libslic3r_version.h"
|
|
Line.cpp
|
|
Line.hpp
|
|
Model.cpp
|
|
Model.hpp
|
|
Arrange.hpp
|
|
Arrange.cpp
|
|
MotionPlanner.cpp
|
|
MotionPlanner.hpp
|
|
MultiPoint.cpp
|
|
MultiPoint.hpp
|
|
MutablePriorityQueue.hpp
|
|
ObjectID.cpp
|
|
ObjectID.hpp
|
|
PerimeterGenerator.cpp
|
|
PerimeterGenerator.hpp
|
|
PlaceholderParser.cpp
|
|
PlaceholderParser.hpp
|
|
Point.cpp
|
|
Point.hpp
|
|
Polygon.cpp
|
|
Polygon.hpp
|
|
PolygonTrimmer.cpp
|
|
PolygonTrimmer.hpp
|
|
Polyline.cpp
|
|
Polyline.hpp
|
|
Print.cpp
|
|
Print.hpp
|
|
PrintBase.cpp
|
|
PrintBase.hpp
|
|
PrintConfig.cpp
|
|
PrintConfig.hpp
|
|
PrintObject.cpp
|
|
PrintRegion.cpp
|
|
Semver.cpp
|
|
ShortestPath.cpp
|
|
ShortestPath.hpp
|
|
SLAPrint.cpp
|
|
SLAPrintSteps.cpp
|
|
SLAPrintSteps.hpp
|
|
SLAPrint.hpp
|
|
Slicing.cpp
|
|
Slicing.hpp
|
|
SlicingAdaptive.cpp
|
|
SlicingAdaptive.hpp
|
|
SupportMaterial.cpp
|
|
SupportMaterial.hpp
|
|
Surface.cpp
|
|
Surface.hpp
|
|
SurfaceCollection.cpp
|
|
SurfaceCollection.hpp
|
|
SVG.cpp
|
|
SVG.hpp
|
|
Technologies.hpp
|
|
Tesselate.cpp
|
|
Tesselate.hpp
|
|
TriangleMesh.cpp
|
|
TriangleMesh.hpp
|
|
utils.cpp
|
|
Utils.hpp
|
|
Time.cpp
|
|
Time.hpp
|
|
MTUtils.hpp
|
|
Zipper.hpp
|
|
Zipper.cpp
|
|
MinAreaBoundingBox.hpp
|
|
MinAreaBoundingBox.cpp
|
|
miniz_extension.hpp
|
|
miniz_extension.cpp
|
|
SimplifyMesh.hpp
|
|
SimplifyMeshImpl.hpp
|
|
SimplifyMesh.cpp
|
|
${OpenVDBUtils_SOURCES}
|
|
SLA/Common.hpp
|
|
SLA/Common.cpp
|
|
SLA/Pad.hpp
|
|
SLA/Pad.cpp
|
|
SLA/SupportTreeBuilder.hpp
|
|
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/Raster.hpp
|
|
SLA/Raster.cpp
|
|
SLA/RasterWriter.hpp
|
|
SLA/RasterWriter.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/Contour3D.hpp
|
|
SLA/Contour3D.cpp
|
|
SLA/EigenMesh3D.hpp
|
|
SLA/Clustering.hpp
|
|
)
|
|
|
|
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 OBJECT MeshBoolean.cpp MeshBoolean.hpp)
|
|
target_include_directories(libslic3r_cgal PRIVATE
|
|
${CMAKE_CURRENT_BINARY_DIR}
|
|
$<TARGET_PROPERTY:libigl,INTERFACE_INCLUDE_DIRECTORIES>
|
|
$<TARGET_PROPERTY:CGAL::CGAL,INTERFACE_INCLUDE_DIRECTORIES>)
|
|
target_compile_definitions(libslic3r_cgal PRIVATE
|
|
$<TARGET_PROPERTY:CGAL::CGAL,INTERFACE_COMPILE_DEFINITIONS>)
|
|
target_compile_options(libslic3r_cgal PRIVATE
|
|
$<TARGET_PROPERTY:CGAL::CGAL,INTERFACE_COMPILE_OPTIONS>)
|
|
|
|
encoding_check(libslic3r)
|
|
|
|
target_compile_definitions(libslic3r PUBLIC -DUSE_TBB -DTBB_USE_CAPTURED_EXCEPTION=0)
|
|
target_include_directories(libslic3r PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${LIBNEST2D_INCLUDES} PUBLIC ${CMAKE_CURRENT_BINARY_DIR})
|
|
target_link_libraries(libslic3r
|
|
libnest2d
|
|
admesh
|
|
cereal
|
|
libigl
|
|
miniz
|
|
boost_libs
|
|
clipper
|
|
nowide
|
|
${EXPAT_LIBRARIES}
|
|
glu-libtess
|
|
polypartition
|
|
poly2tri
|
|
qhull
|
|
semver
|
|
TBB::tbb
|
|
$<TARGET_PROPERTY:CGAL::CGAL,INTERFACE_LINK_LIBRARIES>
|
|
${CMAKE_DL_LIBS}
|
|
)
|
|
|
|
if (NOT MSVC)
|
|
target_link_libraries(libslic3r atomic) # no cmake magic for this...
|
|
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(slic3r Shiny)
|
|
endif()
|
|
|
|
if (SLIC3R_PCH AND NOT SLIC3R_SYNTAXONLY)
|
|
add_precompiled_header(libslic3r pchheader.hpp FORCEINCLUDE)
|
|
endif ()
|
|
|
|
target_sources(libslic3r PRIVATE $<TARGET_OBJECTS:libslic3r_cgal>)
|