Files
servo/components/script_bindings/Cargo.toml
Jonathan Schwender 9069043477 Move ply and WebIDL into script_bindings (#43180)
This is required to publish script_bindings, since all files used during
codegen need to be there.
It might also be possible to generate the bindings ahead of time and
vendor them in-tree, but this seems painful to setup from a CI
perspective.
Since there don't seem to be any other users in-tree we can just vendor
into the script-bindings directory.

`ply` is licensed under the BSD 3 clause, and WebIDL under MPL-2.0, with
the licenses available in our cargo package. Both tools won't end up in
`servo` since they are build-time dependencies, so I believe we don't
need to adjust the crate license, or configure `about.toml`.

Testing: Should be covered by existing tests. We don't test if this
allows vendored builds or published builds.
Fixes: Partial fix for #43145

---------

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2026-03-12 05:44:46 +00:00

68 lines
2.0 KiB
TOML

[package]
name = "servo-script-bindings"
build = "build.rs"
version.workspace = true
authors.workspace = true
edition.workspace = true
publish.workspace = true
rust-version.workspace = true
# BSD-3-Clause comes from third_party/ply, which doesn't end up in any produced build-artifact,
# but is used during the build via build.rs.
license = "MPL-2.0 AND BSD-3-Clause"
# https://github.com/rust-lang/cargo/issues/3544
links = "script_bindings_crate"
[lib]
name = "script_bindings"
path = "lib.rs"
[dependencies]
base = { workspace = true }
bitflags = { workspace = true }
crossbeam-channel = { workspace = true }
deny_public_fields = { package = "servo-deny-public-fields", path = "../deny_public_fields" }
dom_struct = { package = "servo-dom-struct", path = "../dom_struct" }
encoding_rs = { workspace = true }
html5ever = { workspace = true }
indexmap = { workspace = true }
js = { workspace = true }
jstraceable_derive = { package = "servo-jstraceable-derive", path = "../jstraceable_derive" }
keyboard-types = { workspace = true }
libc = { workspace = true }
log = { workspace = true }
malloc_size_of = { workspace = true }
malloc_size_of_derive = { workspace = true }
num-traits = { workspace = true }
parking_lot = { workspace = true }
phf = "0.13"
profile_traits = { workspace = true }
regex = { workspace = true }
servo_arc = { workspace = true }
servo_config = { package = "servo-config", path = "../config" }
servo_url = { package = "servo-url", path = "../url" }
smallvec = { workspace = true }
stylo = { workspace = true }
stylo_atoms = { workspace = true }
tendril = { workspace = true }
tracing = { workspace = true, optional = true }
webxr-api = { workspace = true, optional = true }
xml5ever = { workspace = true }
[build-dependencies]
phf_codegen = "0.13"
phf_shared = "0.13"
serde_json = { workspace = true }
[features]
bluetooth = []
gamepad = []
testbinding = []
tracing = ["dep:tracing"]
webgpu = []
webxr = ["webxr-api"]
[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(crown)'] }
unsafe_op_in_unsafe_fn = { level = "allow" }