Anchor v19 pivot at the workspace level: vendor Jian as a git submodule pinned to fork commit ad13ce6 (P0.5 mini-gate GO; skia-safe 0.78 → 0.97 + new pub draw_on_canvas adapter), wire jian-core / jian-skia / jian-host-desktop as path deps with explicit version per spec §12.2, and re-export the Jian render/geometry/scene types from shell-core so shell-native can translate the OP RenderBackend facade into jian DrawOp commands. shell-core stays wasm32-clean: only jian-core (already wasm32-validated in P0.5) plus glam / bitflags / thiserror / tracing land here. shell-native picks up the full P0-pinned GL stack (skia-safe 0.97.0, glutin 0.32.3, glutin-winit 0.5.0, glow 0.17.0, winit 0.30.13, raw-window-handle 0.6.2, scopeguard 1.2) plus jian-skia (textlayout) and target-gated jian-host-desktop (default-features = false, no `run` feature so we skip Jian's softbuffer raster present path — OP owns its own GPU swap_buffers per spec §3.6). Adds OP RenderBackend trait + Rect / Color (with RED/GREEN/BLUE/BLACK/ WHITE/TRANSPARENT named constants per spec §5.2) + TextLayout facade that wraps jian_core::render::TextRun explicitly (TextRun has no Default impl, fields enumerated to honour spec §5.2 round-2 CONCERN-1 fix). Boundary checks all pass: - wasm32 shell-web metadata: no jian-host-desktop / jian-skia - aarch64-linux-android shell-native metadata: no jian-host-desktop - shell-core src: no glutin / skia_safe / winit / glow imports Tasks 2-4 (SharedSkiaContext + NativeBackend + ShellEvent mapping + acceptance) follow per plan v7.
31 lines
1 KiB
TOML
31 lines
1 KiB
TOML
[workspace]
|
||
resolver = "2"
|
||
# 用 glob 而非显式列表:Step 0 增量创建 crate 时不需要每次改 members(per implementer
|
||
# Phase 1 batch 2 的 workspace masking 反馈:列出未存在的 crate 会让 `cargo build -p X`
|
||
# 在 resolve 阶段就挂掉)。glob 自动包含 crates/ 下所有 manifest,自然支持增量创建。
|
||
members = ["crates/*"]
|
||
exclude = [
|
||
"vendor/agent",
|
||
"vendor/jian",
|
||
"node_modules",
|
||
]
|
||
|
||
[workspace.package]
|
||
version = "0.1.0"
|
||
edition = "2021"
|
||
rust-version = "1.85"
|
||
license = "MIT"
|
||
authors = ["ZSeven-W <fini.yang@gmail.com>"]
|
||
repository = "https://github.com/ZSeven-W/openpencil"
|
||
|
||
[workspace.dependencies]
|
||
serde = { version = "1", features = ["derive"] }
|
||
serde_json = "1"
|
||
thiserror = "1"
|
||
anyhow = "1"
|
||
tracing = "0.1"
|
||
|
||
# WASM 边界相关(per kickoff §1.2 黑名单 = 不出现在这里)
|
||
# 故意不在 workspace.dependencies 暴露 tokio / reqwest / agent / pen-agent-cli /
|
||
# pen-server / native-tls —— 这些只在 native-only crate 内部用 dev-deps 或 target-specific deps。
|