Repeated production builds recompiled build-info, GTK and their dependents because build scripts watched missing optional files and generated outputs. Watch packed-refs only when present and the prebuilt GTK bundle only when consumed. Loose refs remain watched so packing them refreshes Git inputs. Invoke glib-compile-resources directly instead of using a helper that also watches generated XML and UI files. The existing resources directory watch covers their source inputs. Remove the unused helper dependency and document the build input rules. Test Plan: - Run cargo build --profile production three times; repeats compile nothing. - Run cargo clippy, cargo clippy --benches and cargo clippy --tests. - Run cargo +nightly fmt and repeat all three Clippy checks. Documentation: docs/rewrite/ARCHITECTURE.md
80 lines
2.4 KiB
TOML
80 lines
2.4 KiB
TOML
[package]
|
|
name = "ghostty-apprt-gtk"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
build = "build.rs"
|
|
|
|
[features]
|
|
# Build-time ("header") capability levels, the Rust counterpart of the C
|
|
# headers' version macros that Zig's `gtk_version.atLeast`/`adw_version.atLeast`
|
|
# check at comptime. Every `atLeast` is "build level >= requested AND runtime
|
|
# library >= requested", so with a lower build level the code that needs newer
|
|
# API (and the Zig compatibility fallbacks) is compiled instead.
|
|
default = ["adw_1_5", "gtk_4_16"]
|
|
adw_1_3 = []
|
|
adw_1_4 = ["adw_1_3"]
|
|
adw_1_5 = ["adw_1_4"]
|
|
gtk_4_16 = ["gtk/v4_16"]
|
|
|
|
[dependencies]
|
|
ghostty-apprt.workspace = true
|
|
ghostty-config.workspace = true
|
|
ghostty-input.workspace = true
|
|
ghostty-datastruct.workspace = true
|
|
ghostty-inspector.workspace = true
|
|
ghostty-build-info.workspace = true
|
|
ghostty-os.workspace = true
|
|
ghostty-vt.workspace = true
|
|
log = "0.4"
|
|
thiserror = "2"
|
|
bitflags = "2"
|
|
gtk = { package = "gtk4", version = "0.11", features = ["v4_14"] }
|
|
adw = { package = "libadwaita", version = "0.9", features = ["v1_5"] }
|
|
gtk4-layer-shell = "0.8"
|
|
gdk4-x11 = { version = "0.11.5", features = ["x11", "xlib"] }
|
|
gdk4-wayland = { version = "0.11.5", features = ["wayland_crate"] }
|
|
wayland-client = "0.31.15"
|
|
wayland-protocols-plasma = { version = "0.3.12", features = ["client"] }
|
|
wayland-protocols = { version = "0.32.13", features = ["client", "staging"] }
|
|
wayland-backend = { version = "0.3.17", features = ["client_system"] }
|
|
half = "2"
|
|
libc = "0.2.190"
|
|
signal-hook = "0.4.5"
|
|
libloading = "0.9.0"
|
|
dear-imgui-glow = "0.19"
|
|
glow = "0.18"
|
|
wayland-sys = { version = "0.31.11", features = ["client", "dlopen"] }
|
|
|
|
[dev-dependencies]
|
|
env_logger = "0.11"
|
|
|
|
[lints.rust]
|
|
unsafe_code = "deny"
|
|
|
|
[lints.clippy]
|
|
pedantic = { level = "warn", priority = -1 }
|
|
todo = "warn"
|
|
unwrap_used = "warn"
|
|
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"
|