更新:1、新增数据记录功能,将过程数据录入数据库;
2、增加输入点迹数据、凝聚后点迹数据记录; Signed-off-by: waiwaylee <waiwaylee@foxmail.com>
This commit is contained in:
@@ -21,6 +21,41 @@ if(NOT RADAR_SCAN_MODE STREQUAL "PHASE_SCANNING" AND NOT RADAR_SCAN_MODE STREQUA
|
||||
message(FATAL_ERROR "RADAR_SCAN_MODE 必须为 PHASE_SCANNING 或 MECHANICAL_SCANNING,当前值:${RADAR_SCAN_MODE}")
|
||||
endif()
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 数据记录调试功能开关(可选编译,详见 docs/data_record_debug.md)
|
||||
# AUTO : Debug 构建启用、Release 构建关闭(默认;交付构建不做任何记录)
|
||||
# ON : 强制启用(可用于 Release 排查,需自行承担性能开销)
|
||||
# OFF : 强制关闭
|
||||
# 启用时新增独立静态库 rdp_record:以 C++20 编译(ormpp 要求)、编译内置的 sqlite3
|
||||
# amalgamation,并链接进 DLL;源码中的 RDP_RECORD 宏由 RDP_RECORD_ENABLE 控制,关闭时
|
||||
# 展开为空操作(实参不求值),记录模块完全不参与编译。
|
||||
# 依赖来源与升级方式见 third_party/ormpp/UPSTREAM.md。
|
||||
# ---------------------------------------------------------------------------
|
||||
set(RDP_DATA_RECORD "AUTO" CACHE STRING "数据记录调试功能:AUTO(Debug=ON/Release=OFF) / ON / OFF")
|
||||
set_property(CACHE RDP_DATA_RECORD PROPERTY STRINGS AUTO ON OFF)
|
||||
|
||||
if(RDP_DATA_RECORD STREQUAL "AUTO")
|
||||
if(CMAKE_CONFIGURATION_TYPES)
|
||||
message(FATAL_ERROR "多配置生成器下 RDP_DATA_RECORD=AUTO 无法判定,请显式传入 ON 或 OFF")
|
||||
elseif(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
set(RDP_RECORD_ENABLED TRUE)
|
||||
else()
|
||||
set(RDP_RECORD_ENABLED FALSE)
|
||||
endif()
|
||||
elseif(RDP_DATA_RECORD STREQUAL "ON")
|
||||
set(RDP_RECORD_ENABLED TRUE)
|
||||
elseif(RDP_DATA_RECORD STREQUAL "OFF")
|
||||
set(RDP_RECORD_ENABLED FALSE)
|
||||
else()
|
||||
message(FATAL_ERROR "RDP_DATA_RECORD 必须为 AUTO / ON / OFF,当前值:${RDP_DATA_RECORD}")
|
||||
endif()
|
||||
|
||||
if(RDP_RECORD_ENABLED)
|
||||
message(STATUS "数据记录调试功能:启用(C++20 静态库 rdp_record + 内置 SQLite)")
|
||||
else()
|
||||
message(STATUS "数据记录调试功能:关闭(不编译记录模块,RDP_RECORD 为空操作)")
|
||||
endif()
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 语言标准:C++17
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -79,6 +114,49 @@ set(PUBLIC_HEADERS
|
||||
|
||||
add_library(data_process_class_dll SHARED ${SOURCES})
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 数据记录模块(RDP_DATA_RECORD 启用时构建):独立静态库、C++20(ormpp 要求),
|
||||
# 与雷达处理代码(C++17)通过 rdp_record.h 的「仅声明 + 显式实例化」跨标准边界。
|
||||
# ---------------------------------------------------------------------------
|
||||
if(RDP_RECORD_ENABLED)
|
||||
enable_language(C) # 用于编译 sqlite3 amalgamation
|
||||
|
||||
add_library(rdp_record STATIC
|
||||
data_process_class_dll/rdp_record.cpp
|
||||
third_party/ormpp/thirdparty/sqlite3/sqlite3.c
|
||||
)
|
||||
set_target_properties(rdp_record PROPERTIES
|
||||
CXX_STANDARD 20
|
||||
CXX_STANDARD_REQUIRED ON
|
||||
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
|
||||
)
|
||||
# RDP_RECORD_ENABLE 经 PUBLIC 传递给 DLL:data_process.cpp 等源码中的 RDP_RECORD 宏随之生效
|
||||
target_compile_definitions(rdp_record PUBLIC
|
||||
RDP_RECORD_ENABLE
|
||||
ORMPP_ENABLE_SQLITE3
|
||||
)
|
||||
target_include_directories(rdp_record
|
||||
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/data_process_class_dll
|
||||
PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/third_party/ormpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/third_party/ormpp/iguana
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/third_party/ormpp/ormpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/third_party/ormpp/thirdparty/sqlite3
|
||||
)
|
||||
target_compile_options(rdp_record PRIVATE
|
||||
/W3
|
||||
/utf-8
|
||||
/Zc:__cplusplus
|
||||
/FS
|
||||
)
|
||||
|
||||
# 第三方 amalgamation 单独降到 /w(源文件级选项在编译命令行中位于目标级之后,优先生效)
|
||||
set_source_files_properties(third_party/ormpp/thirdparty/sqlite3/sqlite3.c
|
||||
PROPERTIES COMPILE_OPTIONS "/w")
|
||||
|
||||
target_link_libraries(data_process_class_dll PRIVATE rdp_record)
|
||||
endif()
|
||||
|
||||
# 编译 DLL 时定义导出宏;引用 DLL 的工程不应定义该宏。
|
||||
target_compile_definitions(data_process_class_dll PRIVATE
|
||||
DATA_PROCESS_CLASS_DLL_LIBRARY
|
||||
|
||||
Reference in New Issue
Block a user