e469ef75ef
M4.1 — 工业格式 (Agent #0): - JT parser: ISO 14306 Segment→Part→Mesh/LOD, XT B-Rep decode - Parasolid XT: text/binary parser, Body→BrepModel mapping - ACIS SAT: text format parser with version handling - IFC: SPF parser, IfcWall/Slab/Beam/Column entities - STEP AP242: PMI annotation + tolerance export - 47 tests covering all formats + edge cases M4.2 — GPU 加速 (Agent #1): - CUDA kernels: mc_kernel, qem_cost_kernel, tri_intersect_kernel - __constant__ memory for edge tables, atomic triangle collection - CPU fallback when CUDA unavailable (seamless degradation) - VDE_USE_CUDA CMake option, .cu compilation support - 9 tests with CPU path validation M4.3 — Python 绑定 (Agent #2): - vde_brep: BrepModel, make_*, boolean, STEP/IGES, heal, validate - vde_sdf: primitives, operations, to_mesh, gradient descent - vde_cam: roughing/finishing/drilling, Tool, ToolLibrary - vde_assembly: Assembly, AssemblyNode, interference, explode - Version: 3.3.0 synced across pyproject/setup/__init__ 13 files, ~5200 lines, 56+ tests
53 lines
1.4 KiB
CMake
53 lines
1.4 KiB
CMake
cmake_minimum_required(VERSION 3.16)
|
|
project(ViewDesignEngine VERSION 3.2.0 LANGUAGES C CXX)
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
|
|
|
option(BUILD_TESTS "Build tests" ON)
|
|
option(BUILD_BENCHMARKS "Build benchmarks" OFF)
|
|
option(BUILD_EXAMPLES "Build examples" ON)
|
|
option(ENABLE_SANITIZERS "Enable ASan" OFF)
|
|
option(VDE_USE_GMP "GMP exact arithmetic" OFF)
|
|
option(VDE_BUILD_PYTHON "Python bindings" OFF)
|
|
option(VDE_USE_OPENMP "Enable OpenMP parallelization" ON)
|
|
option(VDE_USE_CUDA "Enable CUDA GPU acceleration" OFF)
|
|
|
|
add_library(vde_compile_options INTERFACE)
|
|
include(cmake/CompilerSettings.cmake)
|
|
|
|
find_package(Eigen3 3.3 QUIET)
|
|
if(NOT Eigen3_FOUND)
|
|
include(FetchContent)
|
|
FetchContent_Declare(Eigen3
|
|
URL https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.tar.gz)
|
|
FetchContent_MakeAvailable(Eigen3)
|
|
endif()
|
|
|
|
add_subdirectory(src)
|
|
|
|
if(BUILD_BENCHMARKS)
|
|
add_subdirectory(bench)
|
|
endif()
|
|
|
|
if(BUILD_TESTS)
|
|
enable_testing()
|
|
find_package(GTest QUIET)
|
|
if(NOT GTest_FOUND)
|
|
include(FetchContent)
|
|
FetchContent_Declare(googletest
|
|
URL https://github.com/google/googletest/archive/refs/tags/v1.14.0.tar.gz)
|
|
set(INSTALL_GTEST OFF CACHE BOOL "" FORCE)
|
|
FetchContent_MakeAvailable(googletest)
|
|
endif()
|
|
add_subdirectory(tests)
|
|
endif()
|
|
|
|
if(BUILD_EXAMPLES)
|
|
add_subdirectory(examples)
|
|
endif()
|
|
|
|
if(VDE_BUILD_PYTHON)
|
|
add_subdirectory(python)
|
|
endif()
|