* Leverage Cargo's workspace inheritance feature This commit is an attempt to reduce the complexity of the Cargo manifests in this repository with Cargo's workspace-inheritance feature becoming stable in Rust 1.64.0. This feature allows specifying fields in the root workspace `Cargo.toml` which are then reused throughout the workspace. For example this PR shares definitions such as: * All of the Wasmtime-family of crates now use `version.workspace = true` to have a single location which defines the version number. * All crates use `edition.workspace = true` to have one default edition for the entire workspace. * Common dependencies are listed in `[workspace.dependencies]` to avoid typing the same version number in a lot of different places (e.g. the `wasmparser = "0.89.0"` is now in just one spot. Currently the workspace-inheritance feature doesn't allow having two different versions to inherit, so all of the Cranelift-family of crates still manually specify their version. The inter-crate dependencies, however, are shared amongst the root workspace. This feature can be seen as a method of "preprocessing" of sorts for Cargo manifests. This will help us develop Wasmtime but shouldn't have any actual impact on the published artifacts -- everything's dependency lists are still the same. * Fix wasi-crypto tests
114 lines
3.4 KiB
TOML
114 lines
3.4 KiB
TOML
[package]
|
|
authors = ["The Cranelift Project Developers"]
|
|
name = "cranelift-codegen"
|
|
version = "0.89.0"
|
|
description = "Low-level code generator library"
|
|
license = "Apache-2.0 WITH LLVM-exception"
|
|
documentation = "https://docs.rs/cranelift-codegen"
|
|
repository = "https://github.com/bytecodealliance/wasmtime"
|
|
categories = ["no-std"]
|
|
readme = "README.md"
|
|
keywords = ["compile", "compiler", "jit"]
|
|
build = "build.rs"
|
|
edition.workspace = true
|
|
|
|
[dependencies]
|
|
arrayvec = "0.7"
|
|
bumpalo = "3"
|
|
cranelift-codegen-shared = { path = "./shared", version = "0.89.0" }
|
|
cranelift-entity = { workspace = true }
|
|
cranelift-bforest = { workspace = true }
|
|
hashbrown = { workspace = true, optional = true }
|
|
target-lexicon = { workspace = true }
|
|
log = { workspace = true }
|
|
serde = { version = "1.0.94", features = ["derive"], optional = true }
|
|
bincode = { version = "1.2.1", optional = true }
|
|
gimli = { workspace = true, features = ["write"], optional = true }
|
|
smallvec = { workspace = true }
|
|
regalloc2 = { version = "0.4.1", features = ["checker"] }
|
|
souper-ir = { version = "2.1.0", optional = true }
|
|
sha2 = { version = "0.9.0", optional = true }
|
|
# It is a goal of the cranelift-codegen crate to have minimal external dependencies.
|
|
# Please don't add any unless they are essential to the task of creating binary
|
|
# machine code. Integration tests that need external dependencies can be
|
|
# accomodated in `tests`.
|
|
|
|
[dev-dependencies]
|
|
criterion = "0.3"
|
|
|
|
[build-dependencies]
|
|
cranelift-codegen-meta = { path = "meta", version = "0.89.0" }
|
|
cranelift-isle = { path = "../isle/isle", version = "=0.89.0" }
|
|
miette = { version = "5.1.0", features = ["fancy"], optional = true }
|
|
|
|
[features]
|
|
default = ["std", "unwind"]
|
|
|
|
# The "std" feature enables use of libstd. The "core" feature enables use
|
|
# of some minimal std-like replacement libraries. At least one of these two
|
|
# features need to be enabled.
|
|
std = []
|
|
|
|
# The "core" features enables use of "hashbrown" since core doesn't have
|
|
# a HashMap implementation, and a workaround for Cargo #4866.
|
|
core = ["hashbrown"]
|
|
|
|
# This enables some additional functions useful for writing tests, but which
|
|
# can significantly increase the size of the library.
|
|
testing_hooks = []
|
|
|
|
# Enables detailed logging which can be somewhat expensive.
|
|
trace-log = []
|
|
|
|
# This enables unwind info generation functionality.
|
|
unwind = ["gimli"]
|
|
|
|
# ISA targets for which we should build.
|
|
# If no ISA targets are explicitly enabled, the ISA target for the host machine is enabled.
|
|
x86 = []
|
|
arm64 = []
|
|
s390x = []
|
|
|
|
# Stub feature that does nothing, for Cargo-features compatibility: the new
|
|
# backend is the default now.
|
|
experimental_x64 = []
|
|
|
|
# Option to enable all architectures.
|
|
all-arch = [
|
|
"x86",
|
|
"arm64",
|
|
"s390x"
|
|
]
|
|
|
|
# For dependent crates that want to serialize some parts of cranelift
|
|
enable-serde = [
|
|
"serde",
|
|
"cranelift-entity/enable-serde",
|
|
"regalloc2/enable-serde",
|
|
"smallvec/serde"
|
|
]
|
|
|
|
# Enable the incremental compilation cache for hot-reload use cases.
|
|
incremental-cache = [
|
|
"enable-serde",
|
|
"bincode",
|
|
"sha2"
|
|
]
|
|
|
|
# Enable support for the Souper harvester.
|
|
souper-harvest = ["souper-ir", "souper-ir/stringify"]
|
|
|
|
# Provide fancy Miette-produced errors for ISLE.
|
|
isle-errors = ["miette", "cranelift-isle/miette-errors"]
|
|
|
|
# Put ISLE generated files in isle_generated_code/, for easier
|
|
# inspection, rather than inside of target/.
|
|
isle-in-source-tree = []
|
|
|
|
[badges]
|
|
maintenance = { status = "experimental" }
|
|
|
|
[[bench]]
|
|
name = "x64-evex-encoding"
|
|
harness = false
|