# M1 demo 工作台:在 ADS 停靠的 QVTK 视图里渲染真实 ERT 网格剖面(#18)。 # 复用 spike S3 的 banded contour 管线 + Phase 1 core 的 ColorScale 上色。 find_package(VTK REQUIRED COMPONENTS GUISupportQt RenderingOpenGL2 RenderingVolumeOpenGL2 InteractionStyle InteractionWidgets FiltersGeometry FiltersModeling ) find_package(nlohmann_json CONFIG REQUIRED) find_package(Qt6 REQUIRED COMPONENTS Svg) add_executable(geopro_desktop WIN32 main.cpp Theme.cpp TopBar.cpp Glyphs.cpp PanelHeader.cpp Credential.cpp login/LoginWindow.cpp panels/AnomalyListPanel.cpp panels/DatasetListPanel.cpp panels/ObjectTreePanel.cpp panels/DynamicFormView.cpp panels/ObjectExceptionPanel.cpp panels/DescriptionPanel.cpp panels/chart/RawDataChartView.cpp panels/chart/GridDataChartView.cpp panels/chart/ColorMapService.cpp panels/chart/ColorBarWidget.cpp panels/chart/ScatterPlotItem.cpp panels/chart/LivePanner.cpp panels/AnomalyTablePanel.cpp panels/DatasetDetailPage.cpp panels/DatasetDetailPanel.cpp CentralScene.cpp ProjectListDialog.cpp SettingsDialog.cpp) target_include_directories(geopro_desktop PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) # QtKeychain 经 FetchContent 接入,头文件不随 target 传播,显式加源/构建目录(含生成的 export 头)。 target_include_directories(geopro_desktop PRIVATE ${qtkeychain_SOURCE_DIR} ${qtkeychain_BINARY_DIR}) target_link_libraries(geopro_desktop PRIVATE Qt6::Core Qt6::Gui Qt6::Widgets Qt6::Svg ${VTK_LIBRARIES} ads::qt6advanceddocking qt6keychain nlohmann_json::nlohmann_json geopro_core # Phase 1:ColorScale 上色 geopro_data # Phase 2:本地样本仓储(对象树 / 网格 / 色阶) geopro_net # Phase 3:登录(验证码 + RSA + login2) geopro_render # Phase 4:render 层(Scene / GridContourActor / 相机预设) geopro_controller # Phase 5:导航编排(WorkbenchNavController) ) # Qwt(二维科学图表;源码存在时由根 CMake 定义 qwt 目标)。 # cmake/qwt.cmake 已加 QWT_MOC_INCLUDE=1,Qwt Q_OBJECT 类的 MOC 代码直接编译进各 .cpp.obj, # 标准按需链接可正确解析所有 MOC 符号(无需 /WHOLEARCHIVE)。 if(TARGET qwt) target_link_libraries(geopro_desktop PRIVATE qwt) endif() vtk_module_autoinit(TARGETS geopro_desktop MODULES ${VTK_LIBRARIES}) if(WIN32) add_custom_command(TARGET geopro_desktop POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different $ $ COMMAND_EXPAND_LISTS) # 运行期 Qt 插件部署:platforms 必需;imageformats/iconengines 供 ElaWidgetTools 的 SVG 图标; # styles 备用。从链接的 Qt6::Core 推导 Qt 安装的 plugins 目录,拷到 exe 旁(windeployqt 会被 # ADS 的非 Qt DLL 依赖卡住,故改为显式 copy)。 foreach(_pl platforms styles imageformats iconengines) add_custom_command(TARGET geopro_desktop POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory "$/../plugins/${_pl}" "$/${_pl}") endforeach() endif()