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