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]
54anyhow.workspace = true
55bytemuck = "1"
56collections.workspace = true
57futures.workspace = true
58gpui.workspace = true
59gpui_wgpu = { workspace = true, optional = true, features = ["font-kit"] }
60http_client.workspace = true
61itertools.workspace = true
62libc.workspace = true
63log.workspace = true
64parking_lot.workspace = true
65pathfinder_geometry = "0.5"
66pollster.workspace = true
67profiling.workspace = true
68smallvec.workspace = true
69smol.workspace = true
70strum.workspace = true
71url.workspace = true
72util.workspace = true
73uuid.workspace = true
74
75# Always used
76oo7 = { version = "0.6", 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 }
85swash = { version = "0.2.6" }
86bitflags = { workspace = true, optional = true }
87filedescriptor = { version = "0.8.2", optional = true }
88open = { version = "5.2.0", optional = true }
89xkbcommon = { version = "0.8.0", features = ["wayland", "x11"], optional = true }
90
91# Screen capture
92scap = { workspace = true, optional = true }
93
94# Wayland
95calloop-wayland-source = { version = "0.4.1", optional = true }
96wayland-backend = { version = "0.3.3", features = [
97 "client_system",
98 "dlopen",
99], optional = true }
100wayland-client = { version = "0.31.11", optional = true }
101wayland-cursor = { version = "0.31.11", optional = true }
102wayland-protocols = { version = "0.32.9", features = [
103 "client",
104 "staging",
105 "unstable",
106], optional = true }
107wayland-protocols-plasma = { version = "0.3.9", features = [
108 "client",
109], optional = true }
110wayland-protocols-wlr = { version = "0.3.9", features = [
111 "client",
112], optional = true }
113
114# X11
115as-raw-xcb-connection = { version = "1", optional = true }
116x11rb = { version = "0.13.1", features = [
117 "allow-unsafe-code",
118 "xkb",
119 "randr",
120 "xinput",
121 "cursor",
122 "resource_manager",
123 "sync",
124], optional = true }
125# WARNING: If you change this, you must also publish a new version of zed-xim to crates.io
126xim = { git = "https://github.com/zed-industries/xim-rs.git", rev = "16f35a2c881b815a2b6cdfd6687988e84f8447d8", features = [
127 "x11rb-xcb",
128 "x11rb-client",
129], package = "zed-xim", version = "0.4.0-zed", optional = true }
130x11-clipboard = { version = "0.9.3", optional = true }