FreeCAD / src /Mod /Mesh /App /CMakeLists.txt
AbdulElahGwaith's picture
Upload folder using huggingface_hub
985c397 verified
# SPDX-License-Identifier: LGPL-2.1-or-later
add_library(Mesh SHARED)
if(WIN32)
add_definitions(-DFCAppMesh -DWM4_FOUNDATION_DLL_EXPORT)
endif(WIN32)
target_include_directories(
Mesh
PRIVATE
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
)
target_include_directories(
Mesh
SYSTEM
PUBLIC
${CMAKE_SOURCE_DIR}/src/3rdParty/libkdtree
${EIGEN3_INCLUDE_DIR}
${QtConcurrent_INCLUDE_DIRS}
)
set(Mesh_LIBS
FreeCADBase
FreeCADApp
)
list(APPEND Mesh_LIBS
${QtConcurrent_LIBRARIES}
)
generate_from_py(Edge)
generate_from_py(Facet)
generate_from_py(MeshFeature)
generate_from_py(MeshPoint)
generate_from_py(Mesh)
SET(Mesh_XML_SRCS
Edge.pyi
Facet.pyi
MeshFeature.pyi
MeshPoint.pyi
Mesh.pyi
)
SOURCE_GROUP("XML" FILES ${Mesh_XML_SRCS})
SET(Core_SRCS
Core/Algorithm.cpp
Core/Algorithm.h
Core/Approximation.cpp
Core/Approximation.h
Core/Builder.cpp
Core/Builder.h
Core/Curvature.cpp
Core/Curvature.h
Core/Decimation.cpp
Core/Decimation.h
Core/Definitions.cpp
Core/Definitions.h
Core/Degeneration.cpp
Core/Degeneration.h
Core/Elements.cpp
Core/Elements.h
Core/Evaluation.cpp
Core/Evaluation.h
Core/Grid.cpp
Core/Grid.h
Core/Helpers.h
Core/Info.cpp
Core/Info.h
Core/Iterator.h
Core/KDTree.cpp
Core/KDTree.h
Core/MeshIO.cpp
Core/MeshIO.h
Core/MeshKernel.cpp
Core/MeshKernel.h
Core/Projection.cpp
Core/Projection.h
Core/Segmentation.cpp
Core/Segmentation.h
Core/SetOperations.cpp
Core/SetOperations.h
Core/Smoothing.cpp
Core/Smoothing.h
Core/Tools.cpp
Core/Tools.h
Core/TopoAlgorithm.cpp
Core/TopoAlgorithm.h
Core/Triangulation.cpp
Core/Triangulation.h
Core/Trim.cpp
Core/Trim.h
Core/TrimByPlane.cpp
Core/TrimByPlane.h
Core/tritritest.h
Core/Utilities.h
Core/Visitor.cpp
Core/Visitor.h
Core/CylinderFit.cpp
Core/CylinderFit.h
Core/SphereFit.cpp
Core/SphereFit.h
Core/IO/Reader3MF.cpp
Core/IO/Reader3MF.h
Core/IO/ReaderOBJ.cpp
Core/IO/ReaderOBJ.h
Core/IO/ReaderPLY.cpp
Core/IO/ReaderPLY.h
Core/IO/Writer3MF.cpp
Core/IO/Writer3MF.h
Core/IO/WriterInventor.cpp
Core/IO/WriterInventor.h
Core/IO/WriterOBJ.cpp
Core/IO/WriterOBJ.h
)
SOURCE_GROUP("Core" FILES ${Core_SRCS})
SET(WildMagic4_SRCS
WildMagic4/Wm4ApprCylinderFit3.cpp
WildMagic4/Wm4ApprCylinderFit3.h
WildMagic4/Wm4ApprGaussPointsFit2.cpp
WildMagic4/Wm4ApprGaussPointsFit2.h
WildMagic4/Wm4ApprGaussPointsFit3.cpp
WildMagic4/Wm4ApprGaussPointsFit3.h
WildMagic4/Wm4ApprLineFit3.cpp
WildMagic4/Wm4ApprLineFit3.h
WildMagic4/Wm4ApprPlaneFit3.cpp
WildMagic4/Wm4ApprPlaneFit3.h
WildMagic4/Wm4ApprPolyFit3.cpp
WildMagic4/Wm4ApprPolyFit3.h
WildMagic4/Wm4ApprQuadraticFit3.cpp
WildMagic4/Wm4ApprQuadraticFit3.h
WildMagic4/Wm4ApprSphereFit3.cpp
WildMagic4/Wm4ApprSphereFit3.h
WildMagic4/Wm4BandedMatrix.h
WildMagic4/Wm4BandedMatrix.inl
WildMagic4/Wm4Box2.h
WildMagic4/Wm4Box2.inl
WildMagic4/Wm4Box3.h
WildMagic4/Wm4Box3.inl
WildMagic4/Wm4ContBox2.cpp
WildMagic4/Wm4ContBox2.h
WildMagic4/Wm4ContBox3.cpp
WildMagic4/Wm4ContBox3.h
WildMagic4/Wm4ConvexHull.cpp
WildMagic4/Wm4ConvexHull.h
WildMagic4/Wm4ConvexHull1.cpp
WildMagic4/Wm4ConvexHull1.h
WildMagic4/Wm4ConvexHull2.cpp
WildMagic4/Wm4ConvexHull2.h
WildMagic4/Wm4ConvexHull3.cpp
WildMagic4/Wm4ConvexHull3.h
WildMagic4/Wm4DelPolygonEdge.cpp
WildMagic4/Wm4DelPolygonEdge.h
WildMagic4/Wm4DelPolyhedronFace.cpp
WildMagic4/Wm4DelPolyhedronFace.h
WildMagic4/Wm4DelTetrahedron.cpp
WildMagic4/Wm4DelTetrahedron.h
WildMagic4/Wm4DelTriangle.cpp
WildMagic4/Wm4DelTriangle.h
WildMagic4/Wm4Delaunay.cpp
WildMagic4/Wm4Delaunay.h
WildMagic4/Wm4Delaunay1.cpp
WildMagic4/Wm4Delaunay1.h
WildMagic4/Wm4Delaunay2.cpp
WildMagic4/Wm4Delaunay2.h
WildMagic4/Wm4Delaunay3.cpp
WildMagic4/Wm4Delaunay3.h
WildMagic4/Wm4DistLine3Segment3.cpp
WildMagic4/Wm4DistLine3Segment3.h
WildMagic4/Wm4DistLine3Triangle3.cpp
WildMagic4/Wm4DistLine3Triangle3.h
WildMagic4/Wm4DistSegment3Segment3.cpp
WildMagic4/Wm4DistSegment3Segment3.h
WildMagic4/Wm4DistSegment3Triangle3.cpp
WildMagic4/Wm4DistSegment3Triangle3.h
WildMagic4/Wm4DistVector3Plane3.cpp
WildMagic4/Wm4DistVector3Plane3.h
WildMagic4/Wm4DistVector3Segment3.cpp
WildMagic4/Wm4DistVector3Segment3.h
WildMagic4/Wm4DistVector3Triangle3.cpp
WildMagic4/Wm4DistVector3Triangle3.h
WildMagic4/Wm4Distance.cpp
WildMagic4/Wm4Distance.h
WildMagic4/Wm4ETManifoldMesh.cpp
WildMagic4/Wm4ETManifoldMesh.h
WildMagic4/Wm4ETManifoldMesh.inl
WildMagic4/Wm4EdgeKey.h
WildMagic4/Wm4EdgeKey.inl
WildMagic4/Wm4Eigen.cpp
WildMagic4/Wm4Eigen.h
WildMagic4/Wm4Foundation.h
WildMagic4/Wm4FoundationLIB.h
WildMagic4/Wm4FoundationPCH.cpp
WildMagic4/Wm4FoundationPCH.h
WildMagic4/Wm4GMatrix.h
WildMagic4/Wm4GMatrix.inl
WildMagic4/Wm4GVector.h
WildMagic4/Wm4GVector.inl
WildMagic4/Wm4ImplicitSurface.cpp
WildMagic4/Wm4ImplicitSurface.h
WildMagic4/Wm4Intersector.cpp
WildMagic4/Wm4Intersector.h
WildMagic4/Wm4Intersector1.cpp
WildMagic4/Wm4Intersector1.h
WildMagic4/Wm4IntrLine3Box3.cpp
WildMagic4/Wm4IntrLine3Box3.h
WildMagic4/Wm4IntrLine3Plane3.cpp
WildMagic4/Wm4IntrLine3Plane3.h
WildMagic4/Wm4IntrSegment3Box3.cpp
WildMagic4/Wm4IntrSegment3Box3.h
WildMagic4/Wm4IntrSegment3Plane3.cpp
WildMagic4/Wm4IntrSegment3Plane3.h
WildMagic4/Wm4IntrTriangle2Triangle2.cpp
WildMagic4/Wm4IntrTriangle2Triangle2.h
WildMagic4/Wm4IntrTriangle3Triangle3.cpp
WildMagic4/Wm4IntrTriangle3Triangle3.h
WildMagic4/Wm4LinComp.h
WildMagic4/Wm4LinComp.inl
WildMagic4/Wm4Line3.h
WildMagic4/Wm4Line3.inl
WildMagic4/Wm4LinearSystem.cpp
WildMagic4/Wm4LinearSystem.h
WildMagic4/Wm4Mapper2.h
WildMagic4/Wm4Mapper2.inl
WildMagic4/Wm4Mapper3.h
WildMagic4/Wm4Mapper3.inl
WildMagic4/Wm4Math.cpp
WildMagic4/Wm4Math.h
WildMagic4/Wm4Math.inl
WildMagic4/Wm4MathMCR.h
WildMagic4/Wm4Matrix2.cpp
WildMagic4/Wm4Matrix2.h
WildMagic4/Wm4Matrix2.inl
WildMagic4/Wm4Matrix3.cpp
WildMagic4/Wm4Matrix3.h
WildMagic4/Wm4Matrix3.inl
WildMagic4/Wm4Matrix4.cpp
WildMagic4/Wm4Matrix4.h
WildMagic4/Wm4Matrix4.inl
WildMagic4/Wm4Memory.cpp
WildMagic4/Wm4Memory.h
WildMagic4/Wm4Memory.inl
WildMagic4/Wm4MeshCurvature.cpp
WildMagic4/Wm4MeshCurvature.h
WildMagic4/Wm4MeshSmoother.cpp
WildMagic4/Wm4MeshSmoother.h
WildMagic4/Wm4ParametricSurface.cpp
WildMagic4/Wm4ParametricSurface.h
WildMagic4/Wm4Plane3.h
WildMagic4/Wm4Plane3.inl
WildMagic4/Wm4Platforms.h
WildMagic4/Wm4PolynomialRoots.cpp
WildMagic4/Wm4PolynomialRoots.h
WildMagic4/Wm4Polynomial1.h
WildMagic4/Wm4Polynomial1.inl
WildMagic4/Wm4QuadricSurface.cpp
WildMagic4/Wm4QuadricSurface.h
WildMagic4/Wm4Quaternion.cpp
WildMagic4/Wm4Quaternion.h
WildMagic4/Wm4Quaternion.inl
WildMagic4/Wm4Query.h
WildMagic4/Wm4Query.inl
WildMagic4/Wm4Query2.h
WildMagic4/Wm4Query2.inl
WildMagic4/Wm4Query2Filtered.h
WildMagic4/Wm4Query2Filtered.inl
WildMagic4/Wm4Query2Int64.h
WildMagic4/Wm4Query2Int64.inl
WildMagic4/Wm4Query2TInteger.h
WildMagic4/Wm4Query2TInteger.inl
WildMagic4/Wm4Query2TRational.h
WildMagic4/Wm4Query2TRational.inl
WildMagic4/Wm4Query3.h
WildMagic4/Wm4Query3.inl
WildMagic4/Wm4Query3Filtered.h
WildMagic4/Wm4Query3Filtered.inl
WildMagic4/Wm4Query3Int64.h
WildMagic4/Wm4Query3Int64.inl
WildMagic4/Wm4Query3TInteger.h
WildMagic4/Wm4Query3TInteger.inl
WildMagic4/Wm4Query3TRational.h
WildMagic4/Wm4Query3TRational.inl
WildMagic4/Wm4RVector2.h
WildMagic4/Wm4RVector2.inl
WildMagic4/Wm4RVector3.h
WildMagic4/Wm4RVector3.inl
WildMagic4/Wm4Segment3.h
WildMagic4/Wm4Segment3.inl
WildMagic4/Wm4Sphere3.h
WildMagic4/Wm4Sphere3.inl
WildMagic4/Wm4Surface.cpp
WildMagic4/Wm4Surface.h
WildMagic4/Wm4System.cpp
WildMagic4/Wm4System.h
WildMagic4/Wm4System.inl
WildMagic4/Wm4THashSet.h
WildMagic4/Wm4THashSet.inl
WildMagic4/Wm4THashTable.h
WildMagic4/Wm4THashTable.inl
WildMagic4/Wm4TInteger.h
WildMagic4/Wm4TInteger.inl
WildMagic4/Wm4TMinHeap.h
WildMagic4/Wm4TMinHeap.inl
WildMagic4/Wm4TRVector.h
WildMagic4/Wm4TRVector.inl
WildMagic4/Wm4TRational.h
WildMagic4/Wm4TRational.inl
WildMagic4/Wm4TSmallUnorderedSet.h
WildMagic4/Wm4TSmallUnorderedSet.inl
WildMagic4/Wm4TStringHashTable.h
WildMagic4/Wm4TStringHashTable.inl
WildMagic4/Wm4TTuple.h
WildMagic4/Wm4TTuple.inl
WildMagic4/Wm4Triangle2.h
WildMagic4/Wm4Triangle2.inl
WildMagic4/Wm4Triangle3.h
WildMagic4/Wm4Triangle3.inl
WildMagic4/Wm4TriangleKey.h
WildMagic4/Wm4TriangleKey.inl
WildMagic4/Wm4TriangulateEC.cpp
WildMagic4/Wm4TriangulateEC.h
WildMagic4/Wm4UniqueVerticesTriangles.h
WildMagic4/Wm4UniqueVerticesTriangles.inl
WildMagic4/Wm4VEManifoldMesh.cpp
WildMagic4/Wm4VEManifoldMesh.h
WildMagic4/Wm4VEManifoldMesh.inl
WildMagic4/Wm4Vector2.cpp
WildMagic4/Wm4Vector2.h
WildMagic4/Wm4Vector2.inl
WildMagic4/Wm4Vector3.cpp
WildMagic4/Wm4Vector3.h
WildMagic4/Wm4Vector3.inl
WildMagic4/Wm4Vector4.cpp
WildMagic4/Wm4Vector4.h
WildMagic4/Wm4Vector4.inl
)
SOURCE_GROUP("WildMagic4" FILES ${WildMagic4_SRCS})
SET(Mesh_SRCS
${Mesh_XML_SRCS}
AppMesh.cpp
AppMeshPy.cpp
Exporter.cpp
Exporter.h
Importer.cpp
Importer.h
Edge.cpp
Edge.h
EdgePyImp.cpp
Facet.cpp
Facet.h
FacetPyImp.cpp
FeatureMeshCurvature.cpp
FeatureMeshCurvature.h
FeatureMeshDefects.cpp
FeatureMeshDefects.h
FeatureMeshExport.cpp
FeatureMeshExport.h
FeatureMeshImport.cpp
FeatureMeshImport.h
FeatureMeshSegmentByMesh.cpp
FeatureMeshSegmentByMesh.h
FeatureMeshSetOperations.cpp
FeatureMeshSetOperations.h
FeatureMeshSolid.cpp
FeatureMeshSolid.h
FeatureMeshTransform.cpp
FeatureMeshTransform.h
FeatureMeshTransformDemolding.cpp
FeatureMeshTransformDemolding.h
Mesh.cpp
Mesh.h
MeshFeature.cpp
MeshFeature.h
MeshFeaturePyImp.cpp
MeshPointPyImp.cpp
MeshPoint.h
MeshProperties.cpp
MeshProperties.h
MeshPyImp.cpp
MeshTexture.cpp
MeshTexture.h
PreCompiled.h
Segment.cpp
Segment.h
)
# Suppress -Wundefined-var-template
if (MINGW AND CMAKE_COMPILER_IS_CLANGXX)
unset(_flag_found CACHE)
check_cxx_compiler_flag("-Wno-undefined-var-template" _flag_found)
if (_flag_found)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-undefined-var-template")
endif()
endif()
if(FREECAD_USE_PCH)
target_precompile_headers(Mesh PRIVATE
$<$<COMPILE_LANGUAGE:CXX>:"${CMAKE_CURRENT_LIST_DIR}/PreCompiled.h">
)
endif(FREECAD_USE_PCH)
# Suppress some very long Eigen3 warnings of older versions
if (EIGEN3_NO_DEPRECATED_COPY)
set_source_files_properties(
Core/Approximation.cpp
Core/CylinderFit.cpp
Core/SphereFit.cpp
Core/KDTree.cpp
PROPERTIES COMPILE_FLAGS ${EIGEN3_NO_DEPRECATED_COPY})
endif ()
target_sources(Mesh PRIVATE ${Core_SRCS} ${WildMagic4_SRCS} ${Mesh_SRCS})
target_link_libraries(Mesh ${Mesh_LIBS})
if (MSVC)
target_compile_options(Mesh PRIVATE /wd4251 /wd4275 /wd4661)
endif()
if (FREECAD_WARN_ERROR)
target_compile_warn_error(Mesh)
endif()
SET_BIN_DIR(Mesh Mesh /Mod/Mesh)
SET_PYTHON_PREFIX_SUFFIX(Mesh)
INSTALL(TARGETS Mesh DESTINATION ${CMAKE_INSTALL_LIBDIR})