Shared groundwork: - paths.rs: folders for data, settings and downloads per system (Linux XDG unchanged, Windows %APPDATA%/%LOCALAPPDATA%, Android app folder) - Linux-only parts behind cfg: Wayland on-screen keyboard (osk/wayland.rs), display backend and app id, the vendored winit touch extensions - run_with(event_loop) so that other entry points can start the app Windows (#48): - cross-compiled with MinGW into a portable ink-notes_<version>_x86_64.exe (system DLLs only), no console window in release builds - file picker: user folders and drives; held notebook locks are detected (ERROR_LOCK_VIOLATION) - updater: replaces the running .exe via rename, active at the next start - octotablet panicking without the Tablet PC components no longer crashes the app - release: .exe built in CI and part of the signed checksums - all library tests pass under wine Android (#42): - android_main entry point, winit with android-native-activity, android_logger; octotablet and arboard left out there - cargo check and the cdylib build for aarch64-linux-android pass; the window surface does not follow the activity lifecycle yet Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
104 lines
3.2 KiB
TOML
104 lines
3.2 KiB
TOML
[package]
|
|
name = "ink-notes"
|
|
version = "0.38.0"
|
|
edition = "2021"
|
|
description = "Notizbuch-App für Stift, Touch und Maus unter Linux"
|
|
repository = "https://gitea.pansi.eu/harald/ink-notes"
|
|
license = "MIT"
|
|
readme = "README.md"
|
|
rust-version = "1.92"
|
|
|
|
[dependencies]
|
|
# Fenster- & Event-Handling (Wayland/X11, Stylus)
|
|
winit = { version = "0.29", features = ["rwh_06"] }
|
|
|
|
# Low-Level GPU-Rendering (Vulkan/Direct3D12 via WSLg)
|
|
wgpu = "0.19"
|
|
|
|
# Daten-Casting für GPU-Buffer
|
|
bytemuck = { version = "1.16", features = ["derive"] }
|
|
|
|
# Vektor-Mathematik
|
|
glam = { version = "0.27", features = ["serde"] }
|
|
|
|
# Asynchroner Starter für wgpu-Device-Setup
|
|
pollster = "0.3"
|
|
|
|
# PDF-Vektorexport
|
|
printpdf = "0.7"
|
|
serde = { version = "1.0.229", features = ["derive"] }
|
|
serde_json = "1.0.151"
|
|
|
|
# Immediate-Mode UI (Toolbar & Menüs)
|
|
egui = "0.27"
|
|
egui-wgpu = "0.27"
|
|
egui-winit = { version = "0.27", default-features = false, features = ["links"] }
|
|
webbrowser = "0.8"
|
|
semver = "1.0"
|
|
sha2 = "0.10"
|
|
ureq = { version = "2.10", default-features = false, features = ["tls", "gzip", "json"] }
|
|
url = "2.5"
|
|
|
|
# Bilder einfügen: Dekodieren (PNG/JPEG/GIF/WebP/BMP) und Systemzwischenablage
|
|
image = { version = "0.25", default-features = false, features = ["png", "jpeg", "gif", "webp", "bmp"] }
|
|
minisign-verify = "0.3.0"
|
|
fs2 = "0.4"
|
|
hayro = "0.8"
|
|
hayro-svg = "0.8"
|
|
|
|
# Import von Xournal++-Notizbüchern (gzip-komprimiertes XML mit base64-Bildern)
|
|
flate2 = "1.1"
|
|
quick-xml = "0.41"
|
|
base64 = "0.22"
|
|
# Rnote-Import: SVG-Bilder (z. B. PDF-Seiten) rastern
|
|
resvg = { version = "0.49", default-features = false, features = ["raster-images"] }
|
|
|
|
# Text-Werkzeug: Schriftmetriken und Rasterung (Schriften aus egui)
|
|
ab_glyph = "0.2"
|
|
|
|
# Pen input with pressure on Linux (Wayland/X11) and Windows (Windows Ink)
|
|
[target.'cfg(not(target_os = "android"))'.dependencies]
|
|
octotablet = "0.1.0"
|
|
# Systemzwischenablage (Bilder und Text)
|
|
arboard = { version = "3", default-features = false, features = ["image-data"] }
|
|
|
|
# Bildschirmtastatur unter Wayland anfordern (eigenes text-input-Objekt, siehe src/osk.rs)
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
|
wayland-client = "0.31"
|
|
wayland-backend = { version = "0.3", features = ["client_system"] }
|
|
wayland-protocols = { version = "0.31", features = ["client", "unstable"] }
|
|
|
|
# Android (Issue #42): winit bound to the native activity. The library is built as
|
|
# cdylib with `cargo rustc --lib --crate-type cdylib --target aarch64-linux-android`
|
|
[target.'cfg(target_os = "android")'.dependencies]
|
|
winit = { version = "0.29", features = ["rwh_06", "android-native-activity"] }
|
|
android_logger = { version = "0.13", default-features = false }
|
|
log = "0.4"
|
|
|
|
[package.metadata.android]
|
|
package = "eu.pansi.inknotes"
|
|
apk_name = "ink-notes"
|
|
|
|
[package.metadata.android.sdk]
|
|
min_sdk_version = 26
|
|
target_sdk_version = 34
|
|
|
|
[profile.dev]
|
|
opt-level = 1 # Erhöht Rendering-Performance auch im Debug-Modus
|
|
|
|
[profile.release]
|
|
lto = true
|
|
codegen-units = 1
|
|
opt-level = 3
|
|
strip = true
|
|
|
|
[dev-dependencies]
|
|
tempfile = "3.27.0"
|
|
# Prüft den WGSL-Shader in den Tests (dieselbe Version wie in wgpu 0.19)
|
|
naga = { version = "0.19", features = ["wgsl-in"] }
|
|
|
|
# winit 0.29 with touch support for the client-side title bar on Wayland (Issue #36),
|
|
# see vendor/winit/README.ink-notes.md
|
|
[patch.crates-io]
|
|
winit = { path = "vendor/winit" }
|