Files
ghostty-rs/Cargo.toml
T
ddidderr ebefad5031 fix: Windows core build, embedded init, byte-exact paths, version info
Closes the remaining core/lib/termio/GTK rows (final-Z2.md):
- ghostty-core compiles for Windows (Unix-only exec fields and file
  modes gated); checked with cargo check --target x86_64-pc-windows-gnu.
- Embedded init: ensure_locale, SIGPIPE ignored in ghostty_init for
  C/Swift hosts, Apple crash tags; the argv passed to ghostty_init feeds
  ghostty_config_load_cli_args; ghostty_config_load_file accepts
  non-UTF-8 paths.
- OSC 7 pwd, embedded surface cwd/command/env/initial input,
  ghostty_surface_text and GTK file drops keep raw bytes.
- XTVERSION, TERM_PROGRAM_VERSION, the About dialog and crash metadata
  use ghostty_build_info instead of hardcoded versions.

Test Plan:
- cargo test --workspace (3327 passed)
- cargo clippy --workspace --all-targets -- -D warnings
2026-10-12 08:14:02 +02:00

126 lines
3.5 KiB
TOML

[package]
name = "ghostty-rs"
version = "0.1.0"
edition = "2024"
description = "A Rust rewrite of the Ghostty terminal emulator"
[[bin]]
name = "ghostty"
path = "src/main.rs"
[features]
# Mirrors upstream's `-Dsentry` build option (off by default on Linux):
# enables the local crash-report handler (`ghostty-crash`).
sentry = ["ghostty-crash/sentry"]
[dependencies]
ghostty-core.workspace = true
ghostty-config.workspace = true
ghostty-apprt-gtk.workspace = true
ghostty-apprt.workspace = true
ghostty-cli.workspace = true
ghostty-crash.workspace = true
ghostty-os.workspace = true
log = "0.4"
[dev-dependencies]
rustix = { version = "1", features = ["process"] }
serde_json = "1"
tempfile = "3"
[lints]
workspace = true
[workspace]
resolver = "3"
members = [".", "crates/*"]
# The upstream Ghostty version this rewrite tracks (Zig: `build.zig.zon`
# `.version`); consumed by `crates/ghostty-cli/build.rs`.
[workspace.metadata.ghostty]
app-version = "1.3.1"
[workspace.package]
version = "0.1.0"
edition = "2024"
license = "MIT"
[workspace.dependencies]
ghostty-vt = { path = "crates/ghostty-vt" }
ghostty-unicode = { path = "crates/ghostty-unicode" }
ghostty-terminal = { path = "crates/ghostty-terminal" }
ghostty-input = { path = "crates/ghostty-input" }
ghostty-helpgen = { path = "crates/ghostty-helpgen" }
ghostty-config = { path = "crates/ghostty-config" }
ghostty-font = { path = "crates/ghostty-font" }
ghostty-renderer = { path = "crates/ghostty-renderer" }
ghostty-termio = { path = "crates/ghostty-termio" }
ghostty-os = { path = "crates/ghostty-os" }
ghostty-onig = { path = "crates/ghostty-onig" }
ghostty-datastruct = { path = "crates/ghostty-datastruct" }
ghostty-core = { path = "crates/ghostty-core" }
ghostty-apprt-gtk = { path = "crates/ghostty-apprt-gtk" }
ghostty-apprt = { path = "crates/ghostty-apprt" }
ghostty-cli = { path = "crates/ghostty-cli" }
ghostty-build-info = { path = "crates/ghostty-build-info" }
ghostty-crash = { path = "crates/ghostty-crash" }
ghostty-bench = { path = "crates/ghostty-bench" }
ghostty-inspector = { path = "crates/ghostty-inspector" }
ghostty-vt-capi = { path = "crates/ghostty-vt-capi" }
ghostty-wasm = { path = "crates/ghostty-wasm" }
ghostty-lib = { path = "crates/ghostty-lib" }
[workspace.lints.rust]
unsafe_code = "forbid"
[workspace.lints.clippy]
pedantic = { level = "warn", priority = -1 }
todo = "warn"
unwrap_used = "warn"
# Porting a low-level terminal emulator involves a lot of intentional
# numeric casts and long state-machine functions; these pedantic lints are
# noise for this codebase.
cast_possible_truncation = "allow"
cast_possible_wrap = "allow"
cast_sign_loss = "allow"
cast_precision_loss = "allow"
cast_lossless = "allow"
module_name_repetitions = "allow"
too_many_lines = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
similar_names = "allow"
struct_excessive_bools = "allow"
fn_params_excessive_bools = "allow"
match_same_arms = "allow"
unreadable_literal = "allow"
many_single_char_names = "allow"
doc_markdown = "allow"
must_use_candidate = "allow"
return_self_not_must_use = "allow"
used_underscore_binding = "allow"
large_stack_arrays = "allow"
inline_always = "allow"
[profile.release]
debug = true
strip = false
debug-assertions = true
overflow-checks = true
lto = false
panic = "unwind"
incremental = true
[profile.production]
inherits = "release"
debug = false
strip = true
debug-assertions = false
overflow-checks = false
lto = true
incremental = false
codegen-units = 1
[build-dependencies]
embed-resource = "3.0.12"