# ===================================================================== # geopro_gpr3dv —— vendored 3DGPRViewer 数据生成链(原样拷贝,算法零改动) # # 链路:多通道 _Axx.iprh/.iprb # → IprhParser::loadImpulseMultiChannel → GPRDataModel(traces) # → GPRDataModel::buildVolumeData → volumeData[ch][trace][sample] # → RadarProcessor::runPipeline → 处理后 GPRDataModel # # 版权属用户(lanbingtech 自有),可拷入本仓库 vendored 隔离。 # 仅链 Qt6::Core(QVector/QString/QFile/QVector3D/QJson)+ OpenMP + kissfft。 # 不含 UI/Sql/Network(这些在原版属 GPRWidget/mainwindow,未拷)。 # ===================================================================== # 根工程仅 enable CXX;kissfft 是 C 源(kiss_fft.c/kiss_fftr.c),需显式启用 C 语言, # 否则 .c 文件被 CMake 忽略,导致 kiss_fftr/kiss_fftr_alloc 链接缺失。 enable_language(C) find_package(OpenMP) add_library(geopro_gpr3dv STATIC IprhParser.cpp ImpulseMultiChannelConverter.cpp Rd3Parser.cpp RadarProcessor.cpp PerformanceLogger.cpp third_party/kissfft/kiss_fft.c third_party/kissfft/kiss_fftr.c ) # 头文件目录:本目录(GPRDataModel.h 等)+ kissfft(RadarProcessor.cpp 内 #include "kiss_fftr.h")。 target_include_directories(geopro_gpr3dv PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/third_party/kissfft ) # Qt6::Gui 为 QVector3D(GPRDataModel.h 的道三维位置)所需;Core 提供 QVector/QString/QFile/QJson。 target_link_libraries(geopro_gpr3dv PUBLIC Qt6::Core Qt6::Gui) if(OpenMP_CXX_FOUND) target_link_libraries(geopro_gpr3dv PUBLIC OpenMP::OpenMP_CXX) endif() target_compile_features(geopro_gpr3dv PRIVATE cxx_std_17) # vendored 第三方代码:关 Qt 自动工具(无 QObject/moc 需求),并放宽告警(不改算法、不为告警动代码)。 set_target_properties(geopro_gpr3dv PROPERTIES AUTOMOC OFF AUTOUIC OFF AUTORCC OFF) if(MSVC) target_compile_options(geopro_gpr3dv PRIVATE /W0) endif()