1[package]
2name = "gpui_linux"
3version = "0.1.0"
4edition.workspace = true
5publish.workspace = true
6license = "Apache-2.0"
7
8[lints]
9workspace = true
10
11[lib]
12path = "src/gpui_linux.rs"
13
14[features]
15default = ["wayland", "x11"]
16test-support = ["gpui/test-support"]
17wayland = [
18 "bitflags",
19 "gpui_wgpu",
20 "ashpd/wayland",
21 "cosmic-text",
22 "font-kit",
23 "calloop-wayland-source",
24 "wayland-backend",
25 "wayland-client",
26 "wayland-cursor",
27 "wayland-protocols",
28 "wayland-protocols-plasma",
29 "wayland-protocols-wlr",
30 "filedescriptor",
31 "xkbcommon",
32 "open",
33 "gpui/wayland",
34]
35x11 = [
36 "gpui_wgpu",
37 "ashpd",
38 "cosmic-text",
39 "font-kit",
40 "as-raw-xcb-connection",
41 "x11rb",
42 "xkbcommon",
43 "xim",
44 "x11-clipboard",
45 "filedescriptor",
46 "open",
47 "scap?/x11",
48]
49screen-capture = [
50 "gpui/screen-capture",
51 "scap",
52]
53
54
55[target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.dependencies]
56anyhow.workspace = true
57bytemuck = "1"
58collections.workspace = true
59futures.workspace = true
60gpui.workspace = true
61gpui_wgpu = { workspace = true, optional = true }
62http_client.workspace = true
63itertools.workspace = true
64libc.workspace = true
65log.workspace = true
66parking_lot.workspace = true
67pathfinder_geometry = "0.5"
68profiling.workspace = true
69smallvec.workspace = true
70smol.workspace = true
71strum.workspace = true
72util.workspace = true
73uuid.workspace = true
74
75# Always used
76oo7 = { version = "0.5.0", default-features = false, features = [
77 "async-std",
78 "native_crypto",
79] }
80calloop = "0.14.3"
81raw-window-handle = "0.6"
82
83# Used in both windowing options
84ashpd = { workspace = true, optional = true }
85cosmic-text = { version = "0.17.0", optional = true }
86swash = { version = "0.2.6" }
87# WARNING: If you change this, you must also publish a new version of zed-font-kit to crates.io
88font-kit = { git = "https://github.com/zed-industries/font-kit", rev = "110523127440aefb11ce0cf280ae7c5071337ec5", package = "zed-font-kit", version = "0.14.1-zed", features = [
89 "source-fontconfig-dlopen",
90], optional = true }
91bitflags = { workspace = true, optional = true }
92filedescriptor = { version = "0.8.2", optional = true }
93open = { version = "5.2.0", optional = true }
94xkbcommon = { version = "0.8.0", features = ["wayland", "x11"], optional = true }
95
96# Screen capture
97scap = { workspace = true, optional = true }
98
99# Wayland
100calloop-wayland-source = { version = "0.4.1", optional = true }
101wayland-backend = { version = "0.3.3", features = [
102 "client_system",
103 "dlopen",
104], optional = true }
105wayland-client = { version = "0.31.11", optional = true }
106wayland-cursor = { version = "0.31.11", optional = true }
107wayland-protocols = { version = "0.32.9", features = [
108 "client",
109 "staging",
110 "unstable",
111], optional = true }
112wayland-protocols-plasma = { version = "0.3.9", features = [
113 "client",
114], optional = true }
115wayland-protocols-wlr = { version = "0.3.9", features = [
116 "client",
117], optional = true }
118
119# X11
120as-raw-xcb-connection = { version = "1", optional = true }
121x11rb = { version = "0.13.1", features = [
122 "allow-unsafe-code",
123 "xkb",
124 "randr",
125 "xinput",
126 "cursor",
127 "resource_manager",
128 "sync",
129], optional = true }
130# WARNING: If you change this, you must also publish a new version of zed-xim to crates.io
131xim = { git = "https://github.com/zed-industries/xim-rs.git", rev = "16f35a2c881b815a2b6cdfd6687988e84f8447d8", features = [
132 "x11rb-xcb",
133 "x11rb-client",
134], package = "zed-xim", version = "0.4.0-zed", optional = true }
135x11-clipboard = { version = "0.9.3", optional = true }