mirror of
https://github.com/ZSeven-W/openpencil.git
synced 2026-06-01 03:14:29 +07:00
Drives the three-OS CI matrix verification of the skia-safe + glutin + glow + winit dep stack per Step 1a spec §7. - examples/p0_probe.rs: stencil_visibility + readback chain runner (must own a real OS main thread because winit on macOS rejects EventLoop::new() from cargo test worker threads). - tests/p0_probe.rs: subprocess-invoke wrapper, gated #[ignore = "P0_PROBE_GATE"] so default cargo test stays untouched. - Cargo.toml: add transient [target.'cfg(not(target_arch = "wasm32"))'. dev-dependencies] block (skia-safe 0.97 + glutin 0.32.3 + glutin-winit 0.5.0 + glow 0.17.0 + raw-window-handle 0.6.2 + scopeguard 1.2.0 + winit defaults). Pinned to versions resolved in /tmp/skia-glow-probe. - .github/workflows/rust-check.yml: install Linux GL prereqs (xvfb, mesa, libxkbcommon, libwayland) and add a P0-probe-gate step running cargo test --ignored on each OS (Linux through xvfb-run; Windows early-returns per spec §8.2 WINDOWS_GPU_DEFERRED_NO_RUNNER). All three artefacts are TRANSIENT — reverted in a follow-up cleanup commit after CI is green and the loader-compat notes commit lands. Task 1 owns the permanent integration.
41 lines
2 KiB
TOML
41 lines
2 KiB
TOML
[package]
|
||
name = "openpencil-shell-native"
|
||
version.workspace = true
|
||
edition.workspace = true
|
||
rust-version.workspace = true
|
||
license.workspace = true
|
||
description = "OpenPencil shell — native (winit + skia-safe + accesskit) backend"
|
||
|
||
[lib]
|
||
name = "openpencil_shell_native"
|
||
path = "src/lib.rs"
|
||
|
||
[dependencies]
|
||
openpencil-shell-core = { path = "../openpencil-shell-core", version = "0.1.0" }
|
||
|
||
# Native-only deps cfg-gated 在 wasm32 之外。这一步关键(解 codex round 2 B1 BLOCK):
|
||
# 如果不 cfg-gate,cargo 会先 fetch + run skia-safe 的 build.rs(在 wasm32 上构建失败),
|
||
# Step 5 grep `must NOT be compiled for wasm32` 永远命中不到——会被 skia 错误盖过。
|
||
#
|
||
# Phase 1 skeleton 阶段:故意保持 deps 最小,仅声明意图所需的核心 crate(winit)。
|
||
# skia-safe / accesskit / accesskit_winit 等在 Stage F 真正实现 RenderBackend 时再加。
|
||
# 原因:Rust 1.80 toolchain (rust-toolchain.toml) 对 home/hashbrown 等 crate 当前
|
||
# 版本的 edition2024 / MSRV 1.81+ 需求不兼容,加完整依赖会导致下载阶段失败。
|
||
# 详见提交说明 + Phase 1 Gate codex review。
|
||
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
|
||
winit = { version = "0.30", default-features = false }
|
||
|
||
# TRANSIENT (Step 1a P0 CI gate only — reverted after notes commit, before Task 1 starts).
|
||
# These deps power `examples/p0_probe.rs` + `tests/p0_probe.rs` (gated `#[ignore = "P0_PROBE_GATE"]`).
|
||
# Pinned to versions resolved in /tmp/skia-glow-probe per spec §7. Task 1 will
|
||
# re-introduce them as permanent prod deps in this same target block.
|
||
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies]
|
||
skia-safe = { version = "0.97.0", features = ["gl"] }
|
||
glutin = "0.32.3"
|
||
glutin-winit = "0.5.0"
|
||
glow = "0.17.0"
|
||
raw-window-handle = "0.6.2"
|
||
scopeguard = "1.2.0"
|
||
# Re-enable winit defaults for the dev probe (prod dep is no-default — Stage F
|
||
# will choose the final feature set). Defaults pull in x11+wayland on Linux.
|
||
winit = { version = "0.30" }
|