d7139c3fd6
- tools/build.sh: 一键编译(支持 Release/Debug/ASan) - tools/run_tests.sh: 运行测试 - tools/release.sh: 发布打包 - tools/format.sh: 代码格式化 - tools/clean.sh: 清理构建产物 - 修复 CMakeLists.txt: vde_compile_options 顺序错误 - 修复 src/CMakeLists.txt: 移除重复配置行
164 lines
5.1 KiB
CMake
164 lines
5.1 KiB
CMake
# ── 编译选项接口目标 ──────────────────────────────
|
|
|
|
# ── foundation ─────────────────────────────────────
|
|
add_library(vde_foundation STATIC
|
|
foundation/tolerance.cpp
|
|
foundation/exact_predicates.cpp
|
|
foundation/io_obj.cpp
|
|
foundation/io_stl.cpp
|
|
foundation/serializer.cpp
|
|
foundation/io_ply.cpp
|
|
foundation/io_gltf.cpp
|
|
)
|
|
target_include_directories(vde_foundation
|
|
PUBLIC ${CMAKE_SOURCE_DIR}/include
|
|
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
|
|
)
|
|
target_link_libraries(vde_foundation
|
|
PUBLIC vde_compile_options Eigen3::Eigen
|
|
)
|
|
|
|
# ── core ───────────────────────────────────────────
|
|
add_library(vde_core STATIC
|
|
core/point.cpp
|
|
core/transform.cpp
|
|
core/polygon.cpp
|
|
core/voronoi.cpp
|
|
core/distance.cpp
|
|
core/convex_hull.cpp
|
|
core/icp.cpp
|
|
)
|
|
target_include_directories(vde_core
|
|
PUBLIC ${CMAKE_SOURCE_DIR}/include
|
|
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
|
|
)
|
|
target_link_libraries(vde_core
|
|
PUBLIC vde_foundation vde_compile_options
|
|
)
|
|
|
|
# ── curves ─────────────────────────────────────────
|
|
add_library(vde_curves STATIC
|
|
curves/bezier_curve.cpp
|
|
curves/bspline_curve.cpp
|
|
curves/nurbs_curve.cpp
|
|
curves/bezier_surface.cpp
|
|
curves/bspline_surface.cpp
|
|
curves/tessellation.cpp
|
|
)
|
|
target_include_directories(vde_curves
|
|
PUBLIC ${CMAKE_SOURCE_DIR}/include
|
|
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
|
|
)
|
|
target_link_libraries(vde_curves
|
|
PUBLIC vde_core vde_compile_options
|
|
)
|
|
|
|
# ── mesh ────────────────────────────────────────────
|
|
add_library(vde_mesh STATIC
|
|
mesh/halfedge_mesh.cpp
|
|
mesh/delaunay_2d.cpp
|
|
mesh/cdt_2d.cpp
|
|
mesh/delaunay_3d.cpp
|
|
mesh/mesh_simplify.cpp
|
|
mesh/mesh_smooth.cpp
|
|
mesh/mesh_boolean.cpp
|
|
mesh/mesh_quality.cpp
|
|
mesh/mesh_repair.cpp
|
|
mesh/alpha_shapes.cpp
|
|
mesh/mesh_parameterize.cpp
|
|
mesh/geodesic.cpp
|
|
mesh/mesh_curvature.cpp
|
|
mesh/marching_cubes.cpp
|
|
)
|
|
target_include_directories(vde_mesh
|
|
PUBLIC ${CMAKE_SOURCE_DIR}/include
|
|
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
|
|
)
|
|
target_link_libraries(vde_mesh
|
|
PUBLIC vde_core vde_compile_options
|
|
)
|
|
|
|
# ── spatial ─────────────────────────────────────────
|
|
add_library(vde_spatial STATIC
|
|
spatial/bvh.cpp
|
|
spatial/octree.cpp
|
|
spatial/kd_tree.cpp
|
|
spatial/r_tree.cpp
|
|
)
|
|
target_include_directories(vde_spatial
|
|
PUBLIC ${CMAKE_SOURCE_DIR}/include
|
|
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
|
|
)
|
|
target_link_libraries(vde_spatial
|
|
PUBLIC vde_core vde_compile_options
|
|
)
|
|
|
|
# ── boolean ─────────────────────────────────────────
|
|
add_library(vde_boolean STATIC
|
|
boolean/boolean_2d.cpp
|
|
boolean/boolean_mesh.cpp
|
|
boolean/polygon_offset.cpp
|
|
)
|
|
target_include_directories(vde_boolean
|
|
PUBLIC ${CMAKE_SOURCE_DIR}/include
|
|
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
|
|
)
|
|
target_link_libraries(vde_boolean
|
|
PUBLIC vde_mesh vde_spatial vde_compile_options
|
|
)
|
|
|
|
# ── collision ───────────────────────────────────────
|
|
add_library(vde_collision STATIC
|
|
collision/gjk.cpp
|
|
collision/sat.cpp
|
|
collision/ray_intersect.cpp
|
|
collision/tri_intersect.cpp
|
|
)
|
|
target_include_directories(vde_collision
|
|
PUBLIC ${CMAKE_SOURCE_DIR}/include
|
|
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
|
|
)
|
|
target_link_libraries(vde_collision
|
|
PUBLIC vde_core vde_spatial vde_compile_options
|
|
)
|
|
|
|
# ── 聚合库 ──────────────────────────────────────────
|
|
add_library(vde ${CMAKE_BUILD_TYPE_LIB})
|
|
target_link_libraries(vde
|
|
PUBLIC vde_foundation
|
|
PUBLIC vde_core
|
|
PUBLIC vde_curves
|
|
PUBLIC vde_mesh
|
|
PUBLIC vde_spatial
|
|
PUBLIC vde_boolean
|
|
PUBLIC vde_collision
|
|
PUBLIC vde_brep
|
|
PUBLIC vde_sketch
|
|
)
|
|
add_library(vde::engine ALIAS vde)
|
|
|
|
# ── brep ───────────────────────────────────────────
|
|
add_library(vde_brep STATIC
|
|
brep/brep.cpp
|
|
brep/modeling.cpp
|
|
)
|
|
target_include_directories(vde_brep
|
|
PUBLIC ${CMAKE_SOURCE_DIR}/include
|
|
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
|
|
)
|
|
target_link_libraries(vde_brep
|
|
PUBLIC vde_curves vde_mesh vde_compile_options
|
|
)
|
|
|
|
# ── sketch ─────────────────────────────────────────
|
|
add_library(vde_sketch STATIC
|
|
sketch/constraint_solver.cpp
|
|
)
|
|
target_include_directories(vde_sketch
|
|
PUBLIC ${CMAKE_SOURCE_DIR}/include
|
|
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
|
|
)
|
|
target_link_libraries(vde_sketch
|
|
PUBLIC vde_core vde_compile_options
|
|
)
|