mirror of
https://github.com/zed-industries/zed.git
synced 2026-05-24 05:25:18 +00:00
Self-Review Checklist:
- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [ ] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable
Closes #56314
When running `cargo run -p gpui --example hello_world` on a wayland
linux machine, the code panics and give the following output:
```
thread 'main' (15645) panicked at crates/gpui_linux/src/linux.rs:55:14:
internal error: entered unreachable code
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
```
and the related code is:
c8f09caee4/crates/gpui_linux/src/linux.rs (L29-L57)
`gpui::guess_compositor()` correctly returns `"Wayland"`, but the
corresponding match arm is gated behind `#[cfg(feature = "wayland")]` in
`gpui_linux`, and that feature is never enabled. During the extract
gpui_platform refactor (#49277), the `wayland` and `x11` features were
added to the `zed` binary's dependency on `gpui_platform`, but were
missed in the `[dev-dependencies]` of `gpui/Cargo.toml`, which is what
the examples use.
This PR adds the missing features to the dev-dependency so that
`gpui_platform` propagates them to `gpui_linux` when building examples.
Release Notes:
- N/A or Added/Fixed/Improved ...
Co-authored-by: Kunall Banerjee <hey@kimchiii.space>
252 lines
6 KiB
TOML
252 lines
6 KiB
TOML
[package]
|
|
name = "gpui"
|
|
version = "0.2.2"
|
|
edition.workspace = true
|
|
authors = ["Nathan Sobo <nathan@zed.dev>"]
|
|
description = "Zed's GPU-accelerated UI framework"
|
|
repository = "https://github.com/zed-industries/zed"
|
|
publish = true
|
|
license = "Apache-2.0"
|
|
homepage = "https://gpui.rs"
|
|
readme = "README.md"
|
|
keywords = ["desktop", "gui", "immediate"]
|
|
categories = ["gui"]
|
|
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[features]
|
|
default = ["font-kit", "wayland", "x11", "windows-manifest"]
|
|
test-support = [
|
|
"leak-detection",
|
|
"collections/test-support",
|
|
"http_client/test-support",
|
|
"wayland",
|
|
"x11",
|
|
"proptest",
|
|
]
|
|
inspector = ["gpui_macros/inspector"]
|
|
leak-detection = ["backtrace"]
|
|
wayland = [
|
|
"bitflags",
|
|
]
|
|
x11 = [
|
|
"scap?/x11",
|
|
]
|
|
screen-capture = [
|
|
"scap",
|
|
]
|
|
windows-manifest = ["dep:embed-resource"]
|
|
input-latency-histogram = ["dep:hdrhistogram"]
|
|
|
|
[lib]
|
|
path = "src/gpui.rs"
|
|
doctest = false
|
|
|
|
[dependencies]
|
|
anyhow.workspace = true
|
|
async-task = "4.7"
|
|
backtrace = { workspace = true, optional = true }
|
|
bitflags = { workspace = true, optional = true }
|
|
|
|
collections.workspace = true
|
|
ctor.workspace = true
|
|
derive_more.workspace = true
|
|
etagere = "0.2"
|
|
futures.workspace = true
|
|
futures-concurrency.workspace = true
|
|
gpui_macros.workspace = true
|
|
gpui_shared_string.workspace = true
|
|
http_client.workspace = true
|
|
image.workspace = true
|
|
inventory.workspace = true
|
|
itertools.workspace = true
|
|
log.workspace = true
|
|
num_cpus = "1.13"
|
|
parking = "2.0.0"
|
|
parking_lot.workspace = true
|
|
postage.workspace = true
|
|
proptest = { workspace = true, optional = true }
|
|
chrono.workspace = true
|
|
profiling.workspace = true
|
|
rand.workspace = true
|
|
raw-window-handle = "0.6"
|
|
regex.workspace = true
|
|
refineable.workspace = true
|
|
scheduler.workspace = true
|
|
resvg = { version = "0.45.0", default-features = false, features = [
|
|
"text",
|
|
"system-fonts",
|
|
"memmap-fonts",
|
|
"raster-images"
|
|
] }
|
|
usvg = { version = "0.45.0", default-features = false }
|
|
ttf-parser = "0.25"
|
|
util_macros.workspace = true
|
|
schemars.workspace = true
|
|
seahash = "4.1"
|
|
serde.workspace = true
|
|
serde_json.workspace = true
|
|
slotmap.workspace = true
|
|
smallvec.workspace = true
|
|
async-channel.workspace = true
|
|
stacksafe.workspace = true
|
|
strum.workspace = true
|
|
sum_tree.workspace = true
|
|
taffy = "=0.10.1"
|
|
thiserror.workspace = true
|
|
gpui_util.workspace = true
|
|
hdrhistogram = { workspace = true, optional = true }
|
|
waker-fn = "1.2.0"
|
|
lyon = "1.0"
|
|
pin-project = "1.1.10"
|
|
spin = "0.10.0"
|
|
pollster.workspace = true
|
|
url.workspace = true
|
|
uuid.workspace = true
|
|
web-time.workspace = true
|
|
|
|
[target.'cfg(target_family = "wasm")'.dependencies]
|
|
getrandom = { version = "0.3.4", features = ["wasm_js"] }
|
|
uuid = { workspace = true, features = ["js"] }
|
|
|
|
|
|
[target.'cfg(target_os = "macos")'.dependencies]
|
|
block = "0.1"
|
|
cocoa.workspace = true
|
|
cocoa-foundation.workspace = true
|
|
core-foundation.workspace = true
|
|
core-foundation-sys.workspace = true
|
|
core-graphics = "0.24"
|
|
core-video.workspace = true
|
|
core-text = "21"
|
|
# WARNING: If you change this, you must also publish a new version of zed-font-kit to crates.io
|
|
font-kit = { git = "https://github.com/zed-industries/font-kit", rev = "94b0f28166665e8fd2f53ff6d268a14955c82269", package = "zed-font-kit", version = "0.14.1-zed", optional = true }
|
|
foreign-types = "0.5"
|
|
log.workspace = true
|
|
media.workspace = true
|
|
objc.workspace = true
|
|
objc2 = { version = "0.6", optional = true }
|
|
objc2-metal = { version = "0.3", optional = true }
|
|
mach2.workspace = true
|
|
#TODO: replace with "objc2"
|
|
metal.workspace = true
|
|
|
|
[target.'cfg(any(target_os = "linux", target_os = "freebsd", target_os = "macos"))'.dependencies]
|
|
pathfinder_geometry = "0.5"
|
|
|
|
[target.'cfg(any(target_os = "linux", target_os = "freebsd", target_os = "windows"))'.dependencies]
|
|
scap = { workspace = true, optional = true }
|
|
|
|
|
|
|
|
[target.'cfg(target_os = "windows")'.dependencies]
|
|
windows = { version = "0.61", features = ["Win32_Foundation"] }
|
|
|
|
|
|
[dev-dependencies]
|
|
backtrace.workspace = true
|
|
collections = { workspace = true, features = ["test-support"] }
|
|
env_logger.workspace = true
|
|
gpui_platform = { workspace = true, features = ["font-kit", "wayland", "x11"] }
|
|
gpui_util = { workspace = true }
|
|
lyon = { version = "1.0", features = ["extra"] }
|
|
proptest = { workspace = true }
|
|
rand.workspace = true
|
|
scheduler = { workspace = true, features = ["test-support"] }
|
|
unicode-segmentation = { workspace = true }
|
|
|
|
[target.'cfg(not(target_family = "wasm"))'.dev-dependencies]
|
|
http_client = { workspace = true, features = ["test-support"] }
|
|
reqwest_client = { workspace = true, features = ["test-support"] }
|
|
|
|
[target.'cfg(target_family = "wasm")'.dev-dependencies]
|
|
wasm-bindgen = { workspace = true }
|
|
gpui_web.workspace = true
|
|
|
|
[build-dependencies]
|
|
embed-resource = { version = "3.0", optional = true }
|
|
|
|
[target.'cfg(target_os = "macos")'.build-dependencies]
|
|
bindgen = "0.71"
|
|
cbindgen = { version = "0.28.0", default-features = false }
|
|
|
|
|
|
|
|
|
|
[[example]]
|
|
name = "hello_world"
|
|
path = "examples/hello_world.rs"
|
|
|
|
[[example]]
|
|
name = "move_entity_between_windows"
|
|
path = "examples/move_entity_between_windows.rs"
|
|
|
|
[[example]]
|
|
name = "image"
|
|
path = "examples/image/image.rs"
|
|
|
|
[[example]]
|
|
name = "input"
|
|
path = "examples/input.rs"
|
|
|
|
[[example]]
|
|
name = "on_window_close_quit"
|
|
path = "examples/on_window_close_quit.rs"
|
|
|
|
[[example]]
|
|
name = "opacity"
|
|
path = "examples/opacity.rs"
|
|
|
|
[[example]]
|
|
name = "pattern"
|
|
path = "examples/pattern.rs"
|
|
|
|
[[example]]
|
|
name = "set_menus"
|
|
path = "examples/set_menus.rs"
|
|
|
|
[[example]]
|
|
name = "shadow"
|
|
path = "examples/shadow.rs"
|
|
|
|
[[example]]
|
|
name = "svg"
|
|
path = "examples/svg/svg.rs"
|
|
|
|
[[example]]
|
|
name = "tab_stop"
|
|
path = "examples/tab_stop.rs"
|
|
|
|
[[example]]
|
|
name = "text"
|
|
path = "examples/text.rs"
|
|
|
|
[[example]]
|
|
name = "text_wrapper"
|
|
path = "examples/text_wrapper.rs"
|
|
|
|
[[example]]
|
|
name = "tree"
|
|
path = "examples/tree.rs"
|
|
|
|
[[example]]
|
|
name = "uniform_list"
|
|
path = "examples/uniform_list.rs"
|
|
|
|
[[example]]
|
|
name = "window_shadow"
|
|
path = "examples/window_shadow.rs"
|
|
|
|
[[example]]
|
|
name = "grid_layout"
|
|
path = "examples/grid_layout.rs"
|
|
|
|
[[example]]
|
|
name = "list_example"
|
|
path = "examples/list_example.rs"
|
|
|
|
[[example]]
|
|
name = "mouse_pressure"
|
|
path = "examples/mouse_pressure.rs"
|