50 lines
2.1 KiB
CMake
50 lines
2.1 KiB
CMake
# =====================================================================
|
||
# 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()
|