geopro/README.md

76 lines
4.1 KiB
Markdown
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.

# Geopro 3.0 桌面客户端
地球物理勘探数据可视化桌面客户端Qt 6 + VTK 9C++)。复刻 Geopro 3.0 核心「项目分析视图」。
> M1 范围、架构与决策见 **[docs/superpowers/specs/2026-06-07-geopro-desktop-m1-design.md](docs/superpowers/specs/2026-06-07-geopro-desktop-m1-design.md)**。
> 上位技术基线见 **[docs/Geopro3.0_技术选型与架构规约.md](docs/Geopro3.0_技术选型与架构规约.md)**。
> 环境搭建见 **[docs/ENV_SETUP_Windows.md](docs/ENV_SETUP_Windows.md)**。
## 技术栈
Qt 6.11QtWidgets+ VTK 9.6 · CMake + Ninja · 官方 MSVC 预编译 Qt + vcpkg仅非 Qt 依赖)· MSVCVS 2022/2026/ C++17 · ADS 停靠 · GDAL/PROJ · OpenSSL · QtKeychain。
## 目录(设计 §3
```
src/core/ 纯业务,零 Qt/VTK
src/data/ Repository + 解析器
src/net/ ApiClient / AuthService / Credential
src/render/ VTK 场景与 actor单一场景 + 相机预设)
src/view/ QtWidgets 面板
src/controller/ 联动编排
src/app/ 入口 + 主窗M1 spikeQt+VTK 冒烟程序)
tests/ gtest / Qt Test
tools/ 离线验证脚本validate_samples.py
docs/ 规约、API、样本数据、设计文档
```
## 构建与运行
前置:**Visual Studio 2022/2026**(勾选「使用 C++ 的桌面开发」工作负载,自带 CMake + Ninja、Git、**vcpkg** 并设环境变量 `VCPKG_ROOT`。构建方案②:单一官方 MSVC 预编译 Qt`CMAKE_PREFIX_PATH` → `D:/Qt/6.11.1/msvc2022_64`、VTK 预编译于 `external/vtk-install`、ADS/QtKeychain 经 FetchContent 对接同一份 Qt、仅非 Qt 依赖GDAL/PROJ/OpenSSL/…)走 vcpkg。详见 [docs/ENV_SETUP_Windows.md](docs/ENV_SETUP_Windows.md)。
> ⚠️ 本机 `cmake` / `ninja` / `cl` **默认不在 PATH**,必须在已激活 MSVC 环境的终端里构建。下面三种方式都已处理好这一点。
### 方式一:一键脚本(推荐)
项目根的 `build.bat` 自动用 vswhere 定位 VS、激活 MSVC 环境、按需配置并编译。在 **cmd** 里于项目根执行 `build <命令>`
| 命令 | 作用 |
|---|---|
| `build`(或 `build app` | 编译主程序 `geopro_desktop`(默认) |
| `build run` | 编译并运行主程序 |
| `build test` | 编译并跑单元测试ctest |
| `build all` | 编译全部目标 |
| `build configure` | 改了 CMakeLists / 新增源文件后,强制重新配置 |
### 方式二Visual Studio 打开文件夹
VS →「打开本地文件夹」→ 选仓库根 → 自动识别 `CMakePresets.json` → 选配置 **MSVC Release** → 菜单「生成 → 全部生成」;运行/调试目标选 `geopro_desktop`
### 方式三:手动命令行
开始菜单打开「**x64 Native Tools Command Prompt for VS**」(已带 MSVC 环境在仓库根CMake 用 VS 自带的全路径,因其不在 PATH
```bat
set CMAKE="%VSINSTALLDIR%Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe"
%CMAKE% --preset msvc-release :: 配置(首次 / 改 CMakeLists 后)
%CMAKE% --build build/release --target geopro_desktop :: 编译主程序
build\release\src\app\geopro_desktop.exe :: 运行
%CMAKE% --build build/release --target geopro_tests :: 编译测试
ctest --test-dir build/release --output-on-failure :: 跑测试
```
Debug 用 `--preset msvc-debug`,对应 `build/debug`。`%VSINSTALLDIR%` 在 Native Tools 提示符里已设好。)
### 构建目标与产物
- `geopro_desktop` — 主程序,产物 `build/release/src/app/geopro_desktop.exe`
- `geopro_tests` — 单元测试,配 `ctest`
- 不带 `--target` 编译全部
> 改了已有 `.cpp/.hpp` 直接 `--build`Ninja 增量);改了 `CMakeLists.txt` 或新增源文件需先 `--preset` / `build configure`。链接报 **LNK1104**(文件被占用)时,先关掉运行中的 `geopro_desktop.exe`。
## 当前状态
M1 设计完成v2经双专家评审。进入 **spike 预研**(设计 §15① 全 vcpkg 构建/部署 ② ADS + QVTKOpenGLStereoWidget 停靠稳定 ③ 真实样本跑通 banded contour。spike 通过后展开完整实现计划。