Use Cargo's "namespace features" feature (#4293)
Cargo recently added the ability to have an optional dependency without implicitly introducing a new named feature on a crate. This is triggered with some new directives in the `[features]` section, specifically: * The `dep:foo` syntax means that `foo` is activated but no implicit feature should be added named `foo`. * Additionally `foo?/bar` means that the `bar` feature of `foo` is only activated if `foo` is otherwise activated elsewhere, for example a conditional activation. These two features can help avoid extra feature names showing up that we don't want (e.g. currently the `wasmtime` crate has a `rayon` feature) and additionally can help avoid runtime dependencies in niche cases for us (e.g. activating `all-arch` but disabling `cranelift` would previously pull-in cranelift but no longer will).
This commit is contained in:
@@ -101,8 +101,8 @@ default = [
|
|||||||
]
|
]
|
||||||
jitdump = ["wasmtime/jitdump"]
|
jitdump = ["wasmtime/jitdump"]
|
||||||
vtune = ["wasmtime/vtune"]
|
vtune = ["wasmtime/vtune"]
|
||||||
wasi-crypto = ["wasmtime-wasi-crypto"]
|
wasi-crypto = ["dep:wasmtime-wasi-crypto"]
|
||||||
wasi-nn = ["wasmtime-wasi-nn"]
|
wasi-nn = ["dep:wasmtime-wasi-nn"]
|
||||||
memory-init-cow = ["wasmtime/memory-init-cow", "wasmtime-cli-flags/memory-init-cow"]
|
memory-init-cow = ["wasmtime/memory-init-cow", "wasmtime-cli-flags/memory-init-cow"]
|
||||||
pooling-allocator = ["wasmtime/pooling-allocator", "wasmtime-cli-flags/pooling-allocator"]
|
pooling-allocator = ["wasmtime/pooling-allocator", "wasmtime-cli-flags/pooling-allocator"]
|
||||||
all-arch = ["wasmtime/all-arch"]
|
all-arch = ["wasmtime/all-arch"]
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ default = [
|
|||||||
# with the Cranelift compiler. Cranelift is the default compilation backend of
|
# with the Cranelift compiler. Cranelift is the default compilation backend of
|
||||||
# Wasmtime. If disabled then WebAssembly modules can only be created from
|
# Wasmtime. If disabled then WebAssembly modules can only be created from
|
||||||
# precompiled WebAssembly modules.
|
# precompiled WebAssembly modules.
|
||||||
cranelift = ["wasmtime-cranelift"]
|
cranelift = ["dep:wasmtime-cranelift"]
|
||||||
|
|
||||||
# Enables support for the `perf` jitdump profiler
|
# Enables support for the `perf` jitdump profiler
|
||||||
jitdump = ["wasmtime-jit/jitdump"]
|
jitdump = ["wasmtime-jit/jitdump"]
|
||||||
@@ -76,14 +76,14 @@ jitdump = ["wasmtime-jit/jitdump"]
|
|||||||
vtune = ["wasmtime-jit/vtune"]
|
vtune = ["wasmtime-jit/vtune"]
|
||||||
|
|
||||||
# Enables parallel compilation of WebAssembly code.
|
# Enables parallel compilation of WebAssembly code.
|
||||||
parallel-compilation = ["rayon"]
|
parallel-compilation = ["dep:rayon"]
|
||||||
|
|
||||||
# Enables support for automatic cache configuration to be enabled in `Config`.
|
# Enables support for automatic cache configuration to be enabled in `Config`.
|
||||||
cache = ["wasmtime-cache"]
|
cache = ["dep:wasmtime-cache"]
|
||||||
|
|
||||||
# Enables support for "async stores" as well as defining host functions as
|
# Enables support for "async stores" as well as defining host functions as
|
||||||
# `async fn` and calling functions asynchronously.
|
# `async fn` and calling functions asynchronously.
|
||||||
async = ["wasmtime-fiber", "wasmtime-runtime/async", "async-trait"]
|
async = ["dep:wasmtime-fiber", "wasmtime-runtime/async", "dep:async-trait"]
|
||||||
|
|
||||||
# Enables support for the pooling instance allocation strategy
|
# Enables support for the pooling instance allocation strategy
|
||||||
pooling-allocator = ["wasmtime-runtime/pooling-allocator"]
|
pooling-allocator = ["wasmtime-runtime/pooling-allocator"]
|
||||||
@@ -91,7 +91,7 @@ pooling-allocator = ["wasmtime-runtime/pooling-allocator"]
|
|||||||
# Enables support for all architectures in Cranelift, allowing
|
# Enables support for all architectures in Cranelift, allowing
|
||||||
# cross-compilation using the `wasmtime` crate's API, notably the
|
# cross-compilation using the `wasmtime` crate's API, notably the
|
||||||
# `Engine::precompile_module` function.
|
# `Engine::precompile_module` function.
|
||||||
all-arch = ["wasmtime-cranelift/all-arch"]
|
all-arch = ["wasmtime-cranelift?/all-arch"]
|
||||||
|
|
||||||
# Enables trap handling using POSIX signals instead of Mach exceptions on MacOS.
|
# Enables trap handling using POSIX signals instead of Mach exceptions on MacOS.
|
||||||
# It is useful for applications that do not bind their own exception ports and
|
# It is useful for applications that do not bind their own exception ports and
|
||||||
|
|||||||
Reference in New Issue
Block a user