# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.85"
name = "getrandom"
version = "0.4.1"
authors = ["The Rand Project Developers"]
build = "build.rs"
exclude = [".*"]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A small cross-platform library for retrieving random data from system source"
documentation = "https://docs.rs/getrandom"
readme = "README.md"
categories = [
    "os",
    "no-std",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/rust-random/getrandom"

[package.metadata.docs.rs]
features = [
    "std",
    "sys_rng",
]
rustdoc-args = [
    "--cfg",
    'getrandom_backend="extern_impl"',
]

[package.metadata.cross.target.x86_64-unknown-netbsd]
pre-build = [
    "mkdir -p /tmp/netbsd",
    "curl -fO https://cdn.netbsd.org/pub/NetBSD/NetBSD-9.3/amd64/binary/sets/base.tar.xz",
    "tar -C /tmp/netbsd -xJf base.tar.xz",
    "cp /tmp/netbsd/usr/lib/libexecinfo.so /usr/local/x86_64-unknown-netbsd/lib",
    "rm base.tar.xz",
    "rm -rf /tmp/netbsd",
]

[features]
std = []
sys_rng = ["dep:rand_core"]
wasm_js = [
    "dep:wasm-bindgen",
    "dep:js-sys",
]

[lib]
name = "getrandom"
path = "src/lib.rs"

[[test]]
name = "mod"
path = "tests/mod.rs"

[[test]]
name = "sys_rng"
path = "tests/sys_rng.rs"

[[bench]]
name = "buffer"
path = "benches/buffer.rs"

[dependencies.cfg-if]
version = "1"

[dependencies.rand_core]
version = "0.10.0"
optional = true

[target.'cfg(all(any(target_os = "linux", target_os = "android"), not(any(all(target_os = "linux", target_env = ""), getrandom_backend = "custom", getrandom_backend = "linux_raw", getrandom_backend = "rdrand", getrandom_backend = "rndr"))))'.dependencies.libc]
version = "0.2.154"
default-features = false

[target.'cfg(all(target_arch = "wasm32", any(target_os = "unknown", target_os = "none")))'.dependencies.wasm-bindgen]
version = "0.2.98"
optional = true
default-features = false

[target.'cfg(all(target_arch = "wasm32", any(target_os = "unknown", target_os = "none")))'.dev-dependencies.wasm-bindgen-test]
version = "0.3"

[target.'cfg(all(target_arch = "wasm32", any(target_os = "unknown", target_os = "none"), target_feature = "atomics"))'.dependencies.js-sys]
version = "0.3.77"
optional = true
default-features = false

[target.'cfg(all(target_arch = "wasm32", target_os = "wasi", target_env = "p2"))'.dependencies.wasip2]
version = "1"
default-features = false

[target.'cfg(all(target_arch = "wasm32", target_os = "wasi", target_env = "p3"))'.dependencies.wasip3]
version = "0.4"

[target.'cfg(all(target_os = "uefi", getrandom_backend = "efi_rng"))'.dependencies.r-efi]
version = "5.1"
default-features = false

[target.'cfg(any(target_os = "dragonfly", target_os = "freebsd", target_os = "hurd", target_os = "illumos", target_os = "cygwin", all(target_os = "horizon", target_arch = "arm")))'.dependencies.libc]
version = "0.2.154"
default-features = false

[target.'cfg(any(target_os = "haiku", target_os = "redox", target_os = "nto", target_os = "aix"))'.dependencies.libc]
version = "0.2.154"
default-features = false

[target.'cfg(any(target_os = "ios", target_os = "visionos", target_os = "watchos", target_os = "tvos"))'.dependencies.libc]
version = "0.2.154"
default-features = false

[target.'cfg(any(target_os = "macos", target_os = "openbsd", target_os = "vita", target_os = "emscripten"))'.dependencies.libc]
version = "0.2.154"
default-features = false

[target.'cfg(target_os = "netbsd")'.dependencies.libc]
version = "0.2.154"
default-features = false

[target.'cfg(target_os = "solaris")'.dependencies.libc]
version = "0.2.154"
default-features = false

[target.'cfg(target_os = "vxworks")'.dependencies.libc]
version = "0.2.154"
default-features = false

[lints.clippy]
cast_lossless = "warn"
cast_possible_truncation = "warn"
cast_possible_wrap = "warn"
cast_precision_loss = "warn"
cast_ptr_alignment = "warn"
cast_sign_loss = "warn"
char_lit_as_u8 = "warn"
checked_conversions = "warn"
fn_to_numeric_cast = "warn"
fn_to_numeric_cast_with_truncation = "warn"
ptr_as_ptr = "warn"
unnecessary_cast = "warn"
useless_conversion = "warn"

[lints.rust]
missing_docs = "warn"
unused_lifetimes = "warn"

[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = [
    'cfg(getrandom_backend, values("custom", "efi_rng", "rdrand", "rndr", "linux_getrandom", "linux_raw", "windows_legacy", "unsupported", "extern_impl"))',
    "cfg(getrandom_msan)",
    "cfg(getrandom_test_linux_fallback)",
    "cfg(getrandom_test_linux_without_fallback)",
    "cfg(getrandom_test_netbsd_fallback)",
    'cfg(target_os, values("cygwin"))',
    'cfg(target_os, values("motor"))',
]
