352ee39f53
核心设计: - include/vde/vde.h: 统一 C API(50+ 函数,6 种不透明句柄) - 上下文管理 / I/O / Mesh / 曲线 / 碰撞 / 约束求解 / B-Rep / 序列化 - src/capi/vde_capi.cpp: 完整 C API 实现 (240行) - examples/07_capi_integration: C 语言外部调用示例 - CMake: 添加 vde_capi 库 + install 导出支持 模块架构(每个独立 .a): vde_foundation → vde_core → vde_curves → vde_mesh → vde_spatial → vde_boolean / vde_collision → vde_brep / vde_sketch → vde_capi
45 lines
1.2 KiB
CMake
45 lines
1.2 KiB
CMake
cmake_minimum_required(VERSION 3.16)
|
|
project(ViewDesignEngine VERSION 0.5.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_EXAMPLES "Build examples" ON)
|
|
option(ENABLE_SANITIZERS "Enable ASan" OFF)
|
|
option(VDE_BUILD_PYTHON "Python bindings" 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_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()
|