Files
ViewDesignEngine/src/CMakeLists.txt
T
ViewDesignEngine d7139c3fd6
CI / Build & Test (push) Failing after 38s
CI / Release Build (push) Failing after 25s
chore: 工程工具 + CMake 修复
- 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: 移除重复配置行
2026-07-23 07:51:23 +00:00

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
)