463 lines
12 KiB
TOML
463 lines
12 KiB
TOML
[workspace]
|
|
members = [
|
|
".",
|
|
"tooling/macros",
|
|
]
|
|
default-members = [
|
|
".",
|
|
]
|
|
resolver = "3"
|
|
|
|
[package]
|
|
name = "gpui-ce"
|
|
version = "0.3.3"
|
|
edition = "2024"
|
|
authors = ["Nathan Sobo <nathan@zed.dev>"]
|
|
description = "A community fork of Zed's GPU-accelerated UI framework"
|
|
repository = "https://github.com/gpui-ce/gpui-ce"
|
|
publish = true
|
|
license = "Apache-2.0"
|
|
homepage = "https://gpui-ce.github.io/"
|
|
readme = "README.md"
|
|
keywords = ["desktop", "gui", "immediate"]
|
|
categories = ["gui"]
|
|
autoexamples = false
|
|
|
|
[features]
|
|
default = ["font-kit", "wayland", "x11", "windows-manifest"]
|
|
test-support = [
|
|
"leak-detection",
|
|
"backtrace",
|
|
"collections/test-support",
|
|
"util/test-support",
|
|
"http_client/test-support",
|
|
"wayland",
|
|
"x11",
|
|
]
|
|
inspector = ["gpui-ce-macros/inspector"]
|
|
leak-detection = ["backtrace"]
|
|
runtime_shaders = []
|
|
wayland = [
|
|
"bitflags",
|
|
"ashpd/wayland",
|
|
"font-kit",
|
|
"calloop-wayland-source",
|
|
"wayland-backend",
|
|
"wayland-client",
|
|
"wayland-cursor",
|
|
"wayland-protocols",
|
|
"wayland-protocols-plasma",
|
|
"wayland-protocols-wlr",
|
|
"filedescriptor",
|
|
"xkbcommon",
|
|
"open",
|
|
]
|
|
x11 = [
|
|
"ashpd",
|
|
"font-kit",
|
|
"as-raw-xcb-connection",
|
|
"x11rb",
|
|
"xkbcommon",
|
|
"xim",
|
|
"x11-clipboard",
|
|
"filedescriptor",
|
|
"open",
|
|
]
|
|
windows-manifest = []
|
|
|
|
[lib]
|
|
name = "gpui"
|
|
path = "src/gpui.rs"
|
|
doctest = false
|
|
|
|
[dependencies]
|
|
anyhow = "1.0.86"
|
|
async-task = "4.7"
|
|
backtrace = { version = "0.3", optional = true }
|
|
circular-buffer = "1.0"
|
|
collections = { package = "gpui_collections", version = "0.2.2" }
|
|
ctor = "0.4.0"
|
|
derive_more = "0.99.17"
|
|
etagere = "0.2"
|
|
futures = "0.3"
|
|
futures-concurrency = "7"
|
|
gpui-ce-macros = { path = "./tooling/macros", features = ["inspector"] }
|
|
http_client = { package = "gpui_http_client", version = "0.2.2" }
|
|
image = "0.25.1"
|
|
inventory = "0.3.19"
|
|
itertools = "0.14.0"
|
|
libc = "0.2"
|
|
log = { version = "0.4.16", features = ["kv_unstable_serde", "serde"] }
|
|
lyon = "1.0"
|
|
num_cpus = "1.13"
|
|
parking = "2.0.0"
|
|
parking_lot = "0.12.1"
|
|
pin-project = "1.1.10"
|
|
postage = { version = "0.5", features = ["futures-traits"] }
|
|
profiling = "1"
|
|
proptest = "1"
|
|
rand = "0.9"
|
|
raw-window-handle = "0.6"
|
|
refineable = { package = "gpui_refineable", version = "0.2.2" }
|
|
resvg = { version = "0.45.0", default-features = false, features = [
|
|
"text",
|
|
"system-fonts",
|
|
"memmap-fonts",
|
|
] }
|
|
schemars = { version = "1.0", features = ["indexmap2"] }
|
|
seahash = "4.1"
|
|
semver = { version = "1.0", features = ["serde"] }
|
|
serde = { version = "1.0.221", features = ["derive", "rc"] }
|
|
serde_json = { version = "1.0.144", features = ["preserve_order", "raw_value"] }
|
|
slotmap = "1.0.6"
|
|
smallvec = { version = "1.6", features = ["union"] }
|
|
smol = "2.0"
|
|
spin = "0.10.0"
|
|
stacksafe = "0.1"
|
|
strum = { version = "0.27.2", features = ["derive"] }
|
|
sum_tree = { package = "gpui_sum_tree", version = "0.2.2" }
|
|
taffy = "=0.9.0"
|
|
thiserror = "2.0.12"
|
|
util = { package = "gpui_util", version = "0.2.2" }
|
|
util_macros = { package = "gpui_util_macros", version = "0.2.2" }
|
|
usvg = { version = "0.45.0", default-features = false }
|
|
url = "2"
|
|
uuid = { version = "1.1.2", features = ["v4", "v5", "v7", "serde"] }
|
|
waker-fn = "1.2.0"
|
|
web-time = "1"
|
|
async-channel = "2"
|
|
pollster = "0.4"
|
|
chrono = "0.4"
|
|
|
|
[target.'cfg(target_os = "macos")'.dependencies]
|
|
block = "0.1"
|
|
cocoa = "=0.26.0"
|
|
cocoa-foundation = "=0.2.0"
|
|
core-foundation = "=0.10.0"
|
|
core-foundation-sys = "0.8.6"
|
|
core-graphics = "0.24"
|
|
core-text = "21"
|
|
core-video = { version = "0.4.3", features = ["metal"] }
|
|
dispatch2 = "0.3.1"
|
|
flume = "0.11"
|
|
font-kit = { git = "https://github.com/zed-industries/font-kit", rev = "110523127440aefb11ce0cf280ae7c5071337ec5", package = "zed-font-kit", version = "0.14.1-zed", optional = true }
|
|
foreign-types = "0.5"
|
|
mach2 = "0.5"
|
|
metal = "0.29"
|
|
objc = "0.2"
|
|
objc2 = { version = "0.6", optional = true }
|
|
objc2-metal = { version = "0.3", optional = 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"))'.dependencies]
|
|
flume = "0.11"
|
|
oo7 = { version = "0.6", default-features = false, features = [
|
|
"async-std",
|
|
"native_crypto",
|
|
] }
|
|
wgpu = "24"
|
|
cosmic-text = "0.17.0"
|
|
swash = "0.2.6"
|
|
bytemuck = "1"
|
|
|
|
ashpd = { version = "0.11", default-features = false, features = ["async-std"], optional = true }
|
|
font-kit = { git = "https://github.com/zed-industries/font-kit", rev = "110523127440aefb11ce0cf280ae7c5071337ec5", package = "zed-font-kit", version = "0.14.1-zed", features = [
|
|
"source-fontconfig-dlopen",
|
|
], optional = true }
|
|
|
|
calloop = "0.14.3"
|
|
filedescriptor = { version = "0.8.2", optional = true }
|
|
open = { version = "5.2.0", optional = true }
|
|
|
|
calloop-wayland-source = { version = "0.4.1", optional = true }
|
|
wayland-backend = { version = "0.3.3", features = [
|
|
"client_system",
|
|
"dlopen",
|
|
], optional = true }
|
|
wayland-client = { version = "0.31.11", optional = true }
|
|
wayland-cursor = { version = "0.31.11", optional = true }
|
|
wayland-protocols = { version = "0.32.9", features = [
|
|
"client",
|
|
"staging",
|
|
"unstable",
|
|
], optional = true }
|
|
wayland-protocols-plasma = { version = "0.3.9", features = [
|
|
"client",
|
|
], optional = true }
|
|
wayland-protocols-wlr = { version = "0.3.9", features = [
|
|
"client",
|
|
], optional = true }
|
|
|
|
as-raw-xcb-connection = { version = "1", optional = true }
|
|
x11rb = { version = "0.13.1", features = [
|
|
"allow-unsafe-code",
|
|
"xkb",
|
|
"randr",
|
|
"xinput",
|
|
"cursor",
|
|
"resource_manager",
|
|
"sync",
|
|
"dri3",
|
|
], optional = true }
|
|
xkbcommon = { version = "0.8.0", features = [
|
|
"wayland",
|
|
"x11",
|
|
], optional = true }
|
|
xim = { git = "https://github.com/zed-industries/xim-rs.git", rev = "16f35a2c881b815a2b6cdfd6687988e84f8447d8", features = [
|
|
"x11rb-xcb",
|
|
"x11rb-client",
|
|
], package = "zed-xim", version = "0.4.0-zed", optional = true }
|
|
x11-clipboard = { version = "0.9.3", optional = true }
|
|
bitflags = { version = "2.6.0", optional = true }
|
|
|
|
[target.'cfg(target_os = "windows")'.dependencies]
|
|
flume = "0.11"
|
|
rand = "0.9"
|
|
windows = { version = "0.61", features = [
|
|
"Foundation_Numerics",
|
|
"Storage_Search",
|
|
"Storage_Streams",
|
|
"System_Threading",
|
|
"UI_ViewManagement",
|
|
"Wdk_System_SystemServices",
|
|
"Win32_Globalization",
|
|
"Win32_Graphics_Direct3D",
|
|
"Win32_Graphics_Direct3D11",
|
|
"Win32_Graphics_Direct3D_Fxc",
|
|
"Win32_Graphics_DirectComposition",
|
|
"Win32_Graphics_DirectWrite",
|
|
"Win32_Graphics_Dwm",
|
|
"Win32_Graphics_Dxgi",
|
|
"Win32_Graphics_Dxgi_Common",
|
|
"Win32_Graphics_Gdi",
|
|
"Win32_Graphics_Imaging",
|
|
"Win32_Graphics_Hlsl",
|
|
"Win32_Networking_WinSock",
|
|
"Win32_Security",
|
|
"Win32_Security_Credentials",
|
|
"Win32_Security_Cryptography",
|
|
"Win32_Storage_FileSystem",
|
|
"Win32_System_Com",
|
|
"Win32_System_Com_StructuredStorage",
|
|
"Win32_System_Console",
|
|
"Win32_System_DataExchange",
|
|
"Win32_System_IO",
|
|
"Win32_System_LibraryLoader",
|
|
"Win32_System_Memory",
|
|
"Win32_System_Ole",
|
|
"Win32_System_Performance",
|
|
"Win32_System_Pipes",
|
|
"Win32_System_SystemInformation",
|
|
"Win32_System_SystemServices",
|
|
"Win32_System_Threading",
|
|
"Win32_System_Variant",
|
|
"Win32_System_WinRT",
|
|
"Win32_UI_Controls",
|
|
"Win32_UI_HiDpi",
|
|
"Win32_UI_Input_Ime",
|
|
"Win32_UI_Input_KeyboardAndMouse",
|
|
"Win32_UI_Shell",
|
|
"Win32_UI_Shell_Common",
|
|
"Win32_UI_Shell_PropertiesSystem",
|
|
"Win32_UI_WindowsAndMessaging",
|
|
] }
|
|
windows-core = "0.61"
|
|
windows-numerics = "0.2"
|
|
windows-registry = "0.5"
|
|
|
|
[dev-dependencies]
|
|
backtrace = "0.3"
|
|
collections = { package = "gpui_collections", version = "0.2.2", features = ["test-support"] }
|
|
env_logger = "0.11"
|
|
http_client = { package = "gpui_http_client", version = "0.2.2", features = ["test-support"] }
|
|
lyon = { version = "1.0", features = ["extra"] }
|
|
pretty_assertions = { version = "1.3.0", features = ["unstable"] }
|
|
proptest = "1"
|
|
rand = "0.9"
|
|
unicode-segmentation = "1.10"
|
|
util = { package = "gpui_util", version = "0.2.2", features = ["test-support"] }
|
|
|
|
[target.'cfg(target_os = "windows")'.build-dependencies]
|
|
embed-resource = "3.0"
|
|
windows-registry = "0.5"
|
|
|
|
[target.'cfg(target_os = "macos")'.build-dependencies]
|
|
cbindgen = { version = "0.28.0", default-features = false }
|
|
|
|
[target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.build-dependencies]
|
|
naga = { version = "29.0", features = ["wgsl-in"] }
|
|
|
|
# ============================================================================
|
|
# Learn Examples - Educational examples for learning GPUI
|
|
# ============================================================================
|
|
|
|
[[example]]
|
|
name = "interactive_elements"
|
|
path = "examples/learn/interactive_elements.rs"
|
|
|
|
[[example]]
|
|
name = "creating_components"
|
|
path = "examples/learn/creating_components.rs"
|
|
|
|
[[example]]
|
|
name = "layout"
|
|
path = "examples/learn/layout.rs"
|
|
|
|
[[example]]
|
|
name = "styling"
|
|
path = "examples/learn/styling.rs"
|
|
|
|
[[example]]
|
|
name = "async_tasks"
|
|
path = "examples/learn/async_tasks.rs"
|
|
|
|
[[example]]
|
|
name = "custom_drawing"
|
|
path = "examples/learn/custom_drawing.rs"
|
|
|
|
[[example]]
|
|
name = "animation"
|
|
path = "examples/learn/animation.rs"
|
|
|
|
[[example]]
|
|
name = "text"
|
|
path = "examples/learn/text.rs"
|
|
|
|
# ============================================================================
|
|
# Bench Examples - Performance benchmarks
|
|
# ============================================================================
|
|
|
|
[[example]]
|
|
name = "data_table"
|
|
path = "examples/bench/data_table.rs"
|
|
|
|
[[example]]
|
|
name = "paths_bench"
|
|
path = "examples/bench/paths_bench.rs"
|
|
|
|
[[example]]
|
|
name = "pattern"
|
|
path = "examples/bench/pattern.rs"
|
|
|
|
[[example]]
|
|
name = "shadow"
|
|
path = "examples/bench/shadow.rs"
|
|
|
|
# ============================================================================
|
|
# Legacy Examples - Original examples (to be updated)
|
|
# ============================================================================
|
|
|
|
[[example]]
|
|
name = "focus_visible"
|
|
path = "examples/legacy/focus_visible.rs"
|
|
|
|
[[example]]
|
|
name = "gif_viewer"
|
|
path = "examples/legacy/gif_viewer.rs"
|
|
|
|
[[example]]
|
|
name = "gradient"
|
|
path = "examples/legacy/gradient.rs"
|
|
|
|
[[example]]
|
|
name = "hello_world"
|
|
path = "examples/legacy/hello_world.rs"
|
|
|
|
[[example]]
|
|
name = "image_loading"
|
|
path = "examples/legacy/image_loading.rs"
|
|
|
|
[[example]]
|
|
name = "input"
|
|
path = "examples/legacy/input.rs"
|
|
|
|
[[example]]
|
|
name = "layer_shell"
|
|
path = "examples/legacy/layer_shell.rs"
|
|
|
|
[[example]]
|
|
name = "on_window_close_quit"
|
|
path = "examples/legacy/on_window_close_quit.rs"
|
|
|
|
[[example]]
|
|
name = "opacity"
|
|
path = "examples/legacy/opacity.rs"
|
|
|
|
[[example]]
|
|
name = "scrollable"
|
|
path = "examples/legacy/scrollable.rs"
|
|
|
|
[[example]]
|
|
name = "svg"
|
|
path = "examples/legacy/svg/svg.rs"
|
|
|
|
[[example]]
|
|
name = "tab_stop"
|
|
path = "examples/legacy/tab_stop.rs"
|
|
|
|
[[example]]
|
|
name = "tree"
|
|
path = "examples/legacy/tree.rs"
|
|
|
|
[[example]]
|
|
name = "uniform_list"
|
|
path = "examples/legacy/uniform_list.rs"
|
|
|
|
[[example]]
|
|
name = "window"
|
|
path = "examples/legacy/window.rs"
|
|
|
|
[[example]]
|
|
name = "window_positioning"
|
|
path = "examples/legacy/window_positioning.rs"
|
|
|
|
[[example]]
|
|
name = "window_shadow"
|
|
path = "examples/legacy/window_shadow.rs"
|
|
|
|
[profile.dev]
|
|
split-debuginfo = "unpacked"
|
|
incremental = false
|
|
codegen-units = 16
|
|
|
|
[profile.dev.build-override]
|
|
codegen-units = 16
|
|
|
|
[profile.dev.package]
|
|
quote = { opt-level = 3 }
|
|
syn = { opt-level = 3 }
|
|
proc-macro2 = { opt-level = 3 }
|
|
taffy = { opt-level = 3 }
|
|
resvg = { opt-level = 3 }
|
|
|
|
[profile.release]
|
|
debug = "limited"
|
|
lto = "thin"
|
|
codegen-units = 1
|
|
|
|
[profile.release-fast]
|
|
inherits = "release"
|
|
debug = "full"
|
|
lto = false
|
|
codegen-units = 16
|
|
|
|
[lints.rust]
|
|
unexpected_cfgs = { level = "allow" }
|
|
|
|
[lints.clippy]
|
|
dbg_macro = "deny"
|
|
todo = "deny"
|
|
declare_interior_mutable_const = "deny"
|
|
redundant_clone = "deny"
|
|
disallowed_methods = "deny"
|
|
style = { level = "allow", priority = -1 }
|
|
type_complexity = "allow"
|
|
let_underscore_future = "allow"
|
|
single_range_in_vec_init = "allow"
|
|
too_many_arguments = "allow"
|
|
large_enum_variant = "allow"
|
|
nonminimal_bool = "allow"
|
|
|