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