Skip to content

Commit

Permalink
Clean up all Cargo.toml: put features higher, and document them better
Browse files Browse the repository at this point in the history
  • Loading branch information
emilk committed Feb 5, 2022
1 parent 32a9b4a commit 0fa4bb9
Show file tree
Hide file tree
Showing 11 changed files with 172 additions and 138 deletions.
43 changes: 23 additions & 20 deletions eframe/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,25 +23,6 @@ all-features = true

[lib]

[dependencies]
egui = { version = "0.16.0", path = "../egui", default-features = false }
epi = { version = "0.16.0", path = "../epi" }

# native:
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
egui-winit = { version = "0.16.0", path = "../egui-winit", default-features = false }
egui_glium = { version = "0.16.0", path = "../egui_glium", default-features = false, features = ["clipboard", "epi", "links"], optional = true }
egui_glow = { version = "0.16.0", path = "../egui_glow", default-features = false, features = ["clipboard", "epi", "links", "winit"], optional = true }

# web:
[target.'cfg(target_arch = "wasm32")'.dependencies]
egui_web = { version = "0.16.0", path = "../egui_web", default-features = false, features = ["glow"] }

[dev-dependencies]
ehttp = "0.2"
image = { version = "0.24", default-features = false, features = ["jpeg", "png"] }
poll-promise = "0.1"
rfd = "0.7"

[features]
default = ["default_fonts", "egui_glow"]
Expand All @@ -59,9 +40,31 @@ persistence = [
"epi/persistence",
]

# experimental support for a screen reader
# enable screen reader support (requires `ctx.options().screen_reader = true;`)
screen_reader = [
# we cannot touch egui_glium or egui_glow here due to https://github.com/rust-lang/cargo/issues/8832
"egui-winit/screen_reader",
"egui_web/screen_reader",
]


[dependencies]
egui = { version = "0.16.0", path = "../egui", default-features = false }
epi = { version = "0.16.0", path = "../epi" }

# native:
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
egui-winit = { version = "0.16.0", path = "../egui-winit", default-features = false }
egui_glium = { version = "0.16.0", path = "../egui_glium", default-features = false, features = ["clipboard", "epi", "links"], optional = true }
egui_glow = { version = "0.16.0", path = "../egui_glow", default-features = false, features = ["clipboard", "epi", "links", "winit"], optional = true }

# web:
[target.'cfg(target_arch = "wasm32")'.dependencies]
egui_web = { version = "0.16.0", path = "../egui_web", default-features = false, features = ["glow"] }

[dev-dependencies]
ehttp = "0.2"
image = { version = "0.24", default-features = false, features = ["jpeg", "png"] }
poll-promise = "0.1"
rfd = "0.7"

32 changes: 17 additions & 15 deletions egui-winit/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,21 +21,6 @@ include = [
[package.metadata.docs.rs]
all-features = true

[dependencies]
egui = { version = "0.16.0", path = "../egui", default-features = false, features = ["single_threaded", "tracing"] }
instant = { version = "0.1", features = ["wasm-bindgen"] }
tracing = "0.1"
winit = "0.26.1"

epi = { version = "0.16.0", path = "../epi", optional = true }

copypasta = { version = "0.7", optional = true }
dark-light = { version = "0.2.1", optional = true } # detect dark mode system preference
serde = { version = "1.0", optional = true, features = ["derive"] }
webbrowser = { version = "0.5", optional = true }

# feature screen_reader
tts = { version = "0.20", optional = true }

[features]
default = ["clipboard", "dark-light", "links"]
Expand All @@ -55,3 +40,20 @@ serialize = ["egui/serialize", "serde"]

# implement bytemuck on most types.
convert_bytemuck = ["egui/convert_bytemuck"]


[dependencies]
egui = { version = "0.16.0", path = "../egui", default-features = false, features = ["single_threaded", "tracing"] }
instant = { version = "0.1", features = ["wasm-bindgen"] }
tracing = "0.1"
winit = "0.26.1"

epi = { version = "0.16.0", path = "../epi", optional = true }

copypasta = { version = "0.7", optional = true }
dark-light = { version = "0.2.1", optional = true } # detect dark mode system preference
serde = { version = "1.0", optional = true, features = ["derive"] }
webbrowser = { version = "0.5", optional = true }

# feature screen_reader
tts = { version = "0.20", optional = true }
24 changes: 13 additions & 11 deletions egui/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,6 @@ all-features = true

[lib]

[dependencies]
epaint = { version = "0.16.0", path = "../epaint", default-features = false }

ahash = "0.7"
nohash-hasher = "0.2"

# Optional:
ron = { version = "0.7", optional = true }
serde = { version = "1", features = ["derive", "rc"], optional = true }
# egui doesn't log much, but when it does, it uses `tracing`
tracing = { version = "0.1", optional = true }

[features]
default = ["default_fonts", "single_threaded"]
Expand Down Expand Up @@ -66,3 +55,16 @@ serialize = ["serde", "epaint/serialize"]
# from multiple threads. It comes with a minor performance impact.
single_threaded = ["epaint/single_threaded"]
multi_threaded = ["epaint/multi_threaded"]


[dependencies]
epaint = { version = "0.16.0", path = "../epaint", default-features = false }

ahash = "0.7"
nohash-hasher = "0.2"

# Optional:
ron = { version = "0.7", optional = true }
serde = { version = "1", features = ["derive", "rc"], optional = true }
# egui doesn't log much, but when it does, it uses `tracing`
tracing = { version = "0.1", optional = true }
19 changes: 12 additions & 7 deletions egui_demo_app/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,21 @@ edition = "2021"
rust-version = "1.56"
publish = false

[package.metadata.docs.rs]
all-features = true

[lib]
crate-type = ["cdylib", "rlib"]


[features]
default = ["persistence"]
http = ["egui_demo_lib/http"]
persistence = ["eframe/persistence", "egui_demo_lib/persistence"]
screen_reader = ["eframe/screen_reader"] # experimental
syntax_highlighting = ["egui_demo_lib/syntax_highlighting"]


[dependencies]
eframe = { version = "0.16.0", path = "../eframe" }

Expand All @@ -18,10 +30,3 @@ eframe = { version = "0.16.0", path = "../eframe" }

egui_demo_lib = { version = "0.16.0", path = "../egui_demo_lib", features = ["extra_debug_asserts"] }
tracing-subscriber = "0.3"

[features]
default = ["persistence"]
http = ["egui_demo_lib/http"]
persistence = ["eframe/persistence", "egui_demo_lib/persistence"]
screen_reader = ["eframe/screen_reader"] # experimental
syntax_highlighting = ["egui_demo_lib/syntax_highlighting"]
27 changes: 15 additions & 12 deletions egui_demo_lib/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,21 @@ all-features = true

[lib]


[features]
default = ["chrono"]

# Enable additional checks if debug assertions are enabled (debug builds).
extra_debug_asserts = ["egui/extra_debug_asserts"]
# Always enable additional checks.
extra_asserts = ["egui/extra_asserts"]

http = ["ehttp", "image", "poll-promise"]
persistence = ["egui/persistence", "epi/persistence", "serde"]
serialize = ["egui/serialize", "serde"]
syntax_highlighting = ["syntect"]


[dependencies]
egui = { version = "0.16.0", path = "../egui", default-features = false }
epi = { version = "0.16.0", path = "../epi" }
Expand All @@ -45,18 +60,6 @@ serde = { version = "1", features = ["derive"], optional = true }
[dev-dependencies]
criterion = { version = "0.3", default-features = false }

[features]
default = ["chrono"]

# Enable additional checks if debug assertions are enabled (debug builds).
extra_debug_asserts = ["egui/extra_debug_asserts"]
# Always enable additional checks.
extra_asserts = ["egui/extra_asserts"]

http = ["ehttp", "image", "poll-promise"]
persistence = ["egui/persistence", "epi/persistence", "serde"]
serialize = ["egui/serialize", "serde"]
syntax_highlighting = ["syntect"]

[[bench]]
name = "benchmark"
Expand Down
31 changes: 17 additions & 14 deletions egui_glium/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,20 +22,6 @@ include = [
[package.metadata.docs.rs]
all-features = true

[dependencies]
egui = { version = "0.16.0", path = "../egui", default-features = false, features = [
"convert_bytemuck",
"single_threaded",
] }
egui-winit = { version = "0.16.0", path = "../egui-winit", default-features = false, features = ["epi"] }
epi = { version = "0.16.0", path = "../epi", optional = true }

ahash = "0.7"
bytemuck = "1.7"
glium = "0.31"

[dev-dependencies]
image = { version = "0.24", default-features = false, features = ["png"] }

[features]
default = ["clipboard", "default_fonts", "links", "persistence"]
Expand All @@ -51,6 +37,7 @@ default_fonts = ["egui/default_fonts"]
# enable opening links in a browser when an egui hyperlink is clicked.
links = ["egui-winit/links"]

# enable persisting native window options and egui memory
persistence = [
"egui-winit/persistence",
"egui/persistence",
Expand All @@ -61,3 +48,19 @@ persistence = [

# experimental support for a screen reader
screen_reader = ["egui-winit/screen_reader"]


[dependencies]
egui = { version = "0.16.0", path = "../egui", default-features = false, features = [
"convert_bytemuck",
"single_threaded",
] }
egui-winit = { version = "0.16.0", path = "../egui-winit", default-features = false, features = ["epi"] }
epi = { version = "0.16.0", path = "../epi", optional = true }

ahash = "0.7"
bytemuck = "1.7"
glium = "0.31"

[dev-dependencies]
image = { version = "0.24", default-features = false, features = ["png"] }
48 changes: 25 additions & 23 deletions egui_glow/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,28 +22,6 @@ include = [
[package.metadata.docs.rs]
all-features = true

[dependencies]
egui = { version = "0.16.0", path = "../egui", default-features = false, features = [
"convert_bytemuck",
"single_threaded",
] }
epi = { version = "0.16.0", path = "../epi", optional = true }

bytemuck = "1.7"
glow = "0.11"
memoffset = "0.6"
tracing = "0.1"

[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
egui-winit = { version = "0.16.0", path = "../egui-winit", default-features = false, features = ["dark-light", "epi"], optional = true }
glutin = { version = "0.28.0", optional = true }

[target.'cfg(target_arch = "wasm32")'.dependencies]
web-sys = { version = "0.3", features=["console"] }
wasm-bindgen = { version = "0.2" }

[dev-dependencies]
image = { version = "0.24", default-features = false, features = ["png"] }

[features]
default = ["clipboard", "default_fonts", "links", "persistence", "winit"]
Expand All @@ -59,7 +37,7 @@ default_fonts = ["egui/default_fonts"]
# enable opening links in a browser when an egui hyperlink is clicked.
links = ["egui-winit/links"]

# enable code for saving state
# enable persisting native window options and egui memory
persistence = [
"egui-winit/persistence",
"egui/persistence",
Expand All @@ -74,3 +52,27 @@ screen_reader = ["egui-winit/screen_reader"]
# enable glutin/winit integration.
# if you want to use glow painter on web disable this feature.
winit = ["egui-winit", "glutin"]


[dependencies]
egui = { version = "0.16.0", path = "../egui", default-features = false, features = [
"convert_bytemuck",
"single_threaded",
] }
epi = { version = "0.16.0", path = "../epi", optional = true }

bytemuck = "1.7"
glow = "0.11"
memoffset = "0.6"
tracing = "0.1"

[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
egui-winit = { version = "0.16.0", path = "../egui-winit", default-features = false, features = ["dark-light", "epi"], optional = true }
glutin = { version = "0.28.0", optional = true }

[target.'cfg(target_arch = "wasm32")'.dependencies]
web-sys = { version = "0.3", features=["console"] }
wasm-bindgen = { version = "0.2" }

[dev-dependencies]
image = { version = "0.24", default-features = false, features = ["png"] }
37 changes: 21 additions & 16 deletions egui_web/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,27 @@ all-features = true
[lib]
crate-type = ["cdylib", "rlib"]


[features]
default = ["default_fonts", "glow"]

# If set, egui will use `include_bytes!` to bundle some fonts.
# If you plan on specifying your own fonts you may disable this feature.
default_fonts = ["egui/default_fonts"]

# Use glow as the renderer.
glow = ["egui_glow", "egui_glow/epi"]

# Alternative to the glow renderer.
webgl = []

# enable persisting egui memory
persistence = ["egui/persistence", "ron", "serde"]

# enable screen reader support (requires `ctx.options().screen_reader = true;`)
screen_reader = ["tts"]


[dependencies]
egui = { version = "0.16.0", path = "../egui", default-features = false, features = [
"convert_bytemuck",
Expand All @@ -47,22 +68,6 @@ ron = { version = "0.7", optional = true }
serde = { version = "1", optional = true }
tts = { version = "0.20", optional = true } # feature screen_reader

[features]
default = ["default_fonts", "glow"]

# If set, egui will use `include_bytes!` to bundle some fonts.
# If you plan on specifying your own fonts you may disable this feature.
default_fonts = ["egui/default_fonts"]

# Use glow as the renderer.
glow = ["egui_glow", "egui_glow/epi"]

# Alternative to the glow renderer.
webgl = []

persistence = ["egui/persistence", "ron", "serde"]
screen_reader = ["tts"] # experimental

[dependencies.web-sys]
version = "0.3.52"
features = [
Expand Down
10 changes: 6 additions & 4 deletions emath/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,6 @@ all-features = true

[lib]

[dependencies]
bytemuck = { version = "1.7.2", features = ["derive"], optional = true }
mint = { version = "0.5.6", optional = true }
serde = { version = "1", features = ["derive"], optional = true }

[features]
default = []
Expand All @@ -35,3 +31,9 @@ default = []
extra_debug_asserts = []
# Always enable additional checks.
extra_asserts = []


[dependencies]
bytemuck = { version = "1.7.2", features = ["derive"], optional = true }
mint = { version = "0.5.6", optional = true }
serde = { version = "1", features = ["derive"], optional = true }

0 comments on commit 0fa4bb9

Please sign in to comment.