mirror of
https://github.com/emilk/egui.git
synced 2026-06-26 22:53:14 -04:00
Prerequisite of https://github.com/emilk/egui/pull/6744. See: https://github.com/gfx-rs/wgpu/pull/7218, https://github.com/gfx-rs/wgpu/pull/7425 Please be aware that Rust 1.84 enables some (more) WASM extensions by default, and ships with an `std` built with them enabled: https://blog.rust-lang.org/2024/09/24/webassembly-targets-change-in-default-target-features/ According to `rustc +1.84 --print=cfg --target wasm32-unknown-unknown`, these are: `multivalue`, `mutable-globals`, `reference-types`, and `sign-ext`. (c.f. `rustc +1.84 --print=cfg --target wasm32-unknown-unknown -C target-cpu=mvp` enabling none.) For reference: https://webassembly.org/features/ ---- If support is desired for ancient/esoteric browsers that don't have these implemented, there are two ways to get around this: - Target `wasm32v1-none` instead, but that's a `no-std` target, and I suppose a lot of dependencies don't work that way (e.g. https://github.com/gfx-rs/wgpu/issues/6826) - Using the `-Ctarget-cpu=mvp` and `-Zbuild-std=panic_abort,std` flags, and the `RUSTC_BOOTSTRAP=1` escape hatch to allow using the latter with non-`nightly` toolchains - until https://github.com/rust-lang/wg-cargo-std-aware is stabilized. (For reference: https://github.com/ruffle-rs/ruffle/pull/18528/files#diff-fb2896d189d77b35ace9a079c1ba9b55777d16e0f11ce79f776475a451b1825a) I don't think either of these is particularly advantageous, so I suggest just accepting that browsers will have to have some extensions implemented to run `egui`.
34 lines
730 B
TOML
34 lines
730 B
TOML
[package]
|
|
name = "puffin_profiler"
|
|
version = "0.1.0"
|
|
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
|
license = "MIT OR Apache-2.0"
|
|
edition = "2021"
|
|
rust-version = "1.84"
|
|
publish = false
|
|
|
|
[package.metadata.cargo-machete]
|
|
ignored = ["profiling"]
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
|
|
[features]
|
|
wgpu = ["eframe/wgpu"]
|
|
|
|
|
|
[dependencies]
|
|
eframe = { workspace = true, features = [
|
|
"default",
|
|
"__screenshot", # __screenshot is so we can dump a screenshot using EFRAME_SCREENSHOT_TO
|
|
] }
|
|
env_logger = { version = "0.10", default-features = false, features = [
|
|
"auto-color",
|
|
"humantime",
|
|
] }
|
|
log = { workspace = true }
|
|
puffin = "0.19"
|
|
puffin_http = "0.16"
|
|
profiling = {workspace = true, features = ["profile-with-puffin"] }
|