geopro/src/app/CMakeLists.txt

97 lines
3.5 KiB
CMake
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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/DataTableView.cpp
panels/chart/DetailViewFactory.cpp
panels/chart/ChartTheme.cpp
panels/chart/ColorMapService.cpp
panels/chart/ColorBarWidget.cpp
panels/chart/ScatterPlotItem.cpp
panels/chart/ContourPlotItem.cpp
panels/chart/LivePanner.cpp
panels/chart/ScatterHoverTip.cpp
panels/AnomalyTablePanel.cpp
panels/LoadingOverlay.cpp
panels/DatasetDetailPage.cpp
panels/DatasetDetailPanel.cpp
CentralScene.cpp
ProjectListDialog.cpp
SettingsDialog.cpp
Logging.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 1ColorScale 上色
geopro_data # Phase 2本地样本仓储对象树 / 网格 / 色阶)
geopro_net # Phase 3登录验证码 + RSA + login2
geopro_render # Phase 4render 层Scene / GridContourActor / 相机预设)
geopro_controller # Phase 5导航编排WorkbenchNavController
)
# Qwt二维科学图表源码存在时由根 CMake 定义 qwt 目标)。
# cmake/qwt.cmake 已加 QWT_MOC_INCLUDE=1Qwt 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})
# 崩溃 minidumpDbgHelpWindows 自带)提供 MiniDumpWriteDump。
if(WIN32)
target_link_libraries(geopro_desktop PRIVATE Dbghelp)
endif()
if(WIN32)
add_custom_command(TARGET geopro_desktop POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
$<TARGET_RUNTIME_DLLS:geopro_desktop> $<TARGET_FILE_DIR:geopro_desktop>
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
"$<TARGET_FILE_DIR:Qt6::Core>/../plugins/${_pl}"
"$<TARGET_FILE_DIR:geopro_desktop>/${_pl}")
endforeach()
endif()