[package]
name = "mozilla-central-workspace-hack"
version = "0.1.0"
license = "MPL-2.0"
description = "Workspace hack for mozilla-central"

# This is a hack to help rust code in the tree that are built by different
# invocations of cargo share dependencies rather than rebuilding them. This is
# based on the "rustc-workspace-hack" used by the rustc build system to achieve
# the same. From the description of the issue given there:
#
#  "Each time Cargo runs a build it will re-resolve the dependency graph, "
#  "notably selecting different features sometimes for each build."
#
# We work around this by specifying the union of the set of features selected
# by dependencies in each cargo invocation for each instance they would differ.

[dependencies]
allocator-api2 = { version = "0.2", features = ["alloc", "serde"], optional = true }
arrayvec = { version = "0.7", features = ["serde"], optional = true }
bitflags = { version = "2", features = ["serde", "std"], optional = true }
byteorder = { version = "1", optional = true }
bytes = { version = "1", optional = true }
chrono = { version = "0.4", features = ["serde"], optional = true }
clap = { version = "4", default-features = false, features = ["cargo", "derive", "error-context", "help", "std", "string", "usage", "wrap_help"], optional = true }
crossbeam-utils = { version = "0.8", optional = true }
dist-bin = { path = "../rust/dist-bin", optional = true }
env_logger = { version = "0.10", default-features = false, features = ["color"], optional = true }
flate2 = { version = "1", optional = true }
fluent = { version = "0.17", default-features = false, features = ["fluent-pseudo"], optional = true }
fluent-langneg = { version = "0.13", features = ["cldr"], optional = true }
fnv = { version = "1", optional = true }
form_urlencoded = { version = "1", optional = true }
futures = { version = "0.3", features = ["alloc", "futures-executor"], optional = true }
futures-channel = { version = "0.3", features = ["sink"], optional = true }
futures-core = { version = "0.3", optional = true }
futures-executor = { version = "0.3", features = ["thread-pool"], optional = true }
futures-sink = { version = "0.3", optional = true }
futures-util = { version = "0.3", features = ["channel", "io", "sink"], optional = true }
getrandom = { version = "0.2", default-features = false, features = ["custom", "std"], optional = true }
hashbrown = { version = "0.13", optional = true }
hex = { version = "0.4", features = ["serde"], optional = true }
hyper = { version = "1", features = ["server", "http1"], optional = true }
icu_locale_core = { version = "2.0", default-features = false, features = ["zerovec"], optional = true }
icu_properties = { version = "2.0", features = ["unicode_bidi"], optional = true }
idna = { version = "1", optional = true }
indexmap = { version = "2", features = ["serde", "std"], optional = true }
libc = { version = "0.2", features = ["extra_traits"] }
log = { version = "0.4", features = ["release_max_level_info", "std"], optional = true }
mio = { version = "1", features = ["log"], optional = true }
num-integer = { version = "0.1", optional = true }
num-traits = { version = "0.2", features = ["i128", "libm"], optional = true }
object = { version = "0.36", default-features = false, features = ["read", "std"], optional = true }
once_cell = { version = "1", optional = true }
percent-encoding = { version = "2", optional = true }
phf = { version = "0.13", features = ["macros", "phf_macros"], optional = true }
regex = { version = "1", optional = true }
rkv = { version = "0.20", default-features = false, features = ["no-canonicalize-path"], optional = true }
scroll = { version = "0.12", optional = true }
semver = { version = "1", features = ["serde"], optional = true }
serde = { version = "1", features = ["alloc", "derive", "rc"] }
serde_json = { version = "1", features = ["float_roundtrip", "preserve_order", "unbounded_depth"], optional = true }
smallvec = { version = "1", features = ["const_new", "serde", "union"], optional = true }
stable_deref_trait = { version = "1", features = ["std"], optional = true }
strsim = { version = "0.11", optional = true }
time = { version = "0.3", features = ["formatting", "macros", "parsing", "serde"], optional = true }
tinystr = { version = "0.8", features = ["zerovec"], optional = true }
tokio = { version = "1", features = ["fs", "macros", "rt-multi-thread"], optional = true }
tokio-util = { version = "0.7", features = ["io"], optional = true }
tracing = { version = "0.1", features = ["log"], optional = true }
unic-langid = { version = "0.9", features = ["likelysubtags"], optional = true }
unic-langid-impl = { version = "0.9", default-features = false, features = ["likelysubtags"], optional = true }
unicode-bidi = { version = "0.3", features = ["smallvec"], optional = true }
uniffi = { workspace = true, optional = true }
url = { version = "2", features = ["serde"], optional = true }
uuid = { version = "1", features = ["serde", "v4"], optional = true }
xml-rs = { version = "0.8", optional = true }
yoke = { version = "0.8", features = ["derive"], optional = true }
zerocopy = { version = "0.8", optional = true }
zerofrom = { version = "0.1", default-features = false, features = ["alloc", "derive"], optional = true }
zerovec = { version = "0.11", default-features = false, features = ["derive", "yoke"], optional = true }
zip = { version = "2.1.2", default-features = false, features = ["deflate-flate2", "flate2"], optional = true }

[target."cfg(windows)".dependencies]
scopeguard = { version = "1", optional = true }

[build-dependencies]
bindgen = { version = "0.69", default-features = false, features = ["runtime"], optional = true }
cc = { version = "1.0", features = ["parallel"], optional = true }
itertools = { version = "0.14", default-features = false, features = ["use_alloc"], optional = true }
libc = "0.2"
log = { version = "0.4", features = ["std"], optional = true }
memchr = { version = "2", optional = true }
nom = { version = "7", optional = true }
proc-macro2 = "1"
quote = "1"
regex = { version = "1", default-features = false, features = ["perf"], optional = true }
semver = { version = "1", features = ["serde"], optional = true }
serde = { version = "1", features = ["derive"] }
syn = { version = "2", features = ["extra-traits", "fold", "full", "visit", "visit-mut"] }
time-macros = { version = "0.2", default-features = false, features = ["serde"], optional = true }
toml = { version = "0.5", optional = true }
uniffi = { workspace = true, optional = true }

[target."cfg(windows)".dependencies.winapi]
version = "0.3.6"
features = [
    "avrt",
    "basetsd",
    "bits",
    "bits2_5",
    "bitsmsg",
    "cfg",
    "combaseapi",
    "consoleapi",
    "d3d11",
    "d3d11_1",
    "d3d11_2",
    "d3d11sdklayers",
    "d3d12",
    "d3d12sdklayers",
    "d3d12shader",
    "d3dcommon",
    "d3dcompiler",
    "dcomp",
    "dwrite",
    "dwrite_1",
    "dwrite_3",
    "dxgi1_2",
    "dxgi1_3",
    "dxgi1_4",
    "dxgi1_5",
    "dxgi1_6",
    "dxgidebug",
    "dxgiformat",
    "errhandlingapi",
    "evntrace",
    "fileapi",
    "guiddef",
    "handleapi",
    "hidclass",
    "hidpi",
    "hidusage",
    "impl-debug",
    "impl-default",
    "in6addr",
    "inaddr",
    "ioapiset",
    "knownfolders",
    "libloaderapi",
    "memoryapi",
    "minwinbase",
    "minwindef",
    "mmeapi",
    "mmsystem",
    "mswsock",
    "namedpipeapi",
    "ntdef",
    "ntsecapi",
    "ntstatus",
    "oaidl",
    "objbase",
    "oleauto",
    "processenv",
    "processthreadsapi",
    "profileapi",
    "psapi",
    "rpcndr",
    "setupapi",
    "shlobj",
    "std",
    "synchapi",
    "sysinfoapi",
    "taskschd",
    "timeapi",
    "timezoneapi",
    "unknwnbase",
    "winbase",
    "wincon",
    "wincrypt",
    "windef",
    "winerror",
    "wininet",
    "winioctl",
    "winnls",
    "winnt",
    "winreg",
    "winsock2",
    "winuser",
    "ws2def",
    "ws2ipdef",
    "ws2tcpip",
    "wtypes",
    "wtypesbase",
]

[target."cfg(windows)".dependencies.windows]
version = "0.62"
optional = true
features = [
    "Win32_Foundation",
    "Win32_Graphics",
    "Win32_Graphics_Direct3D",
    "Win32_Graphics_Direct3D12",
    "Win32_Graphics_Direct3D_Dxc",
    "Win32_Graphics_Direct3D_Fxc",
    "Win32_Graphics_DirectComposition",
    "Win32_Graphics_Dxgi",
    "Win32_Graphics_Dxgi_Common",
    "Win32_NetworkManagement_IpHelper",
    "Win32_NetworkManagement_Ndis",
    "Win32_Networking_WinSock",
    "Win32_Security",
    "Win32_System",
    "Win32_System_Diagnostics",
    "Win32_System_Diagnostics_Debug",
    "Win32_System_Kernel",
    "Win32_System_Performance",
    "Win32_System_Threading",
    "Win32_UI",
    "Win32_UI_WindowsAndMessaging",
]

[target."cfg(windows)".dependencies.windows-sys]
version = "0.61.1"
optional = true
features = [
    "Wdk_Foundation",
    "Wdk_Storage",
    "Wdk_Storage_FileSystem",
    "Wdk_System_IO",
    "Wdk_System_Threading",
    "Win32_Foundation",
    "Win32_Globalization",
    "Win32_Graphics_Gdi",
    "Win32_Networking",
    "Win32_Networking_WinSock",
    "Win32_Security",
    "Win32_Security_Cryptography",
    "Win32_Security_Cryptography_Catalog",
    "Win32_Security_WinTrust",
    "Win32_Storage_FileSystem",
    "Win32_System_Com",
    "Win32_System_Diagnostics_Debug",
    "Win32_System_ErrorReporting",
    "Win32_System_IO",
    "Win32_System_Kernel",
    "Win32_System_LibraryLoader",
    "Win32_System_Memory",
    "Win32_System_Pipes",
    "Win32_System_ProcessStatus",
    "Win32_System_Registry",
    "Win32_System_SystemInformation",
    "Win32_System_SystemServices",
    "Win32_System_Threading",
    "Win32_System_WindowsProgramming",
    "Win32_UI_Controls",
    "Win32_UI_HiDpi",
    "Win32_UI_Input_KeyboardAndMouse",
    "Win32_UI_Shell",
    "Win32_UI_WindowsAndMessaging",
]

[target."cfg(any(target_os = \"macos\", target_os = \"ios\"))".dependencies.core-foundation-sys]
version = "0.8"
optional = true

[features]
crash_helper_server = ["dep:cc", "dep:num-traits", "dep:log", "dep:once_cell", "dep:uuid", "dep:windows-sys"]
crashreporter = ["dep:allocator-api2", "dep:arrayvec", "dep:bindgen", "dep:bitflags", "dep:byteorder", "dep:bytes", "dep:cc", "dep:chrono", "dep:crossbeam-utils", "dep:env_logger", "dep:flate2", "dep:fluent", "dep:fluent-langneg", "dep:fnv", "dep:form_urlencoded", "dep:futures-channel", "dep:futures-core", "dep:futures-executor", "dep:futures-sink", "dep:futures-util", "dep:getrandom", "dep:hashbrown", "dep:hex", "dep:hyper", "dep:icu_locale_core", "dep:icu_properties", "dep:idna", "dep:indexmap", "dep:itertools", "dep:log", "dep:memchr", "dep:mio", "dep:nom", "dep:num-integer", "dep:num-traits", "dep:object", "dep:once_cell", "dep:percent-encoding", "dep:phf", "dep:regex", "dep:rkv", "dep:scroll", "dep:semver", "dep:serde_json", "dep:smallvec", "dep:stable_deref_trait", "dep:time", "dep:time-macros", "dep:tinystr", "dep:tokio", "dep:tokio-util", "dep:toml", "dep:tracing", "dep:unic-langid", "dep:unic-langid-impl", "dep:unicode-bidi", "dep:uniffi", "dep:url", "dep:uuid", "dep:windows-sys", "dep:yoke", "dep:zerocopy", "dep:zerofrom", "dep:zerovec", "dep:zip"]
crashping = ["dep:serde_json", "dep:time"]
geckodriver = ["dep:allocator-api2", "dep:bitflags", "dep:byteorder", "dep:bytes", "dep:cc", "dep:chrono", "dep:clap", "dep:crossbeam-utils", "dep:flate2", "dep:fnv", "dep:form_urlencoded", "dep:futures-channel", "dep:futures-core", "dep:futures-sink", "dep:futures-util", "dep:getrandom", "dep:hashbrown", "dep:hyper", "dep:icu_locale_core", "dep:icu_properties", "dep:idna", "dep:indexmap", "dep:log", "dep:memchr", "dep:mio", "dep:num-integer", "dep:num-traits", "dep:once_cell", "dep:percent-encoding", "dep:regex", "dep:semver", "dep:serde_json", "dep:smallvec", "dep:stable_deref_trait", "dep:strsim", "dep:time", "dep:time-macros", "dep:tinystr", "dep:tokio", "dep:tokio-util", "dep:tracing", "dep:unicode-bidi", "dep:url", "dep:uuid", "dep:windows-sys", "dep:xml-rs", "dep:yoke", "dep:zerocopy", "dep:zerofrom", "dep:zerovec", "dep:zip"]
gkrust = ["dep:allocator-api2", "dep:arrayvec", "dep:bindgen", "dep:bitflags", "dep:byteorder", "dep:bytes", "dep:cc", "dep:chrono", "dep:core-foundation-sys", "dep:crossbeam-utils", "dep:env_logger", "dep:flate2", "dep:fluent", "dep:fluent-langneg", "dep:fnv", "dep:form_urlencoded", "dep:futures", "dep:futures-channel", "dep:futures-core", "dep:futures-executor", "dep:futures-sink", "dep:futures-util", "dep:getrandom", "dep:hashbrown", "dep:hex", "dep:icu_locale_core", "dep:icu_properties", "dep:idna", "dep:indexmap", "dep:itertools", "dep:log", "dep:memchr", "dep:nom", "dep:num-integer", "dep:num-traits", "dep:object", "dep:once_cell", "dep:percent-encoding", "dep:phf", "dep:regex", "dep:rkv", "dep:scopeguard", "dep:scroll", "dep:semver", "dep:serde_json", "dep:smallvec", "dep:stable_deref_trait", "dep:strsim", "dep:time", "dep:time-macros", "dep:tinystr", "dep:toml", "dep:unic-langid", "dep:unic-langid-impl", "dep:unicode-bidi", "dep:uniffi", "dep:url", "dep:uuid", "dep:windows", "dep:windows-sys", "dep:xml-rs", "dep:yoke", "dep:zerocopy", "dep:zerofrom", "dep:zerovec"]
gkrust-gtest = ["gkrust"]
http3server = ["dep:allocator-api2", "dep:arrayvec", "dep:bindgen", "dep:bitflags", "dep:byteorder", "dep:bytes", "dep:chrono", "dep:clap", "dep:dist-bin", "dep:env_logger", "dep:fnv", "dep:form_urlencoded", "dep:futures", "dep:futures-channel", "dep:futures-core", "dep:futures-executor", "dep:futures-sink", "dep:futures-util", "dep:getrandom", "dep:hashbrown", "dep:hex", "dep:hyper", "dep:icu_locale_core", "dep:icu_properties", "dep:idna", "dep:indexmap", "dep:itertools", "dep:log", "dep:memchr", "dep:mio", "dep:nom", "dep:num-integer", "dep:num-traits", "dep:once_cell", "dep:percent-encoding", "dep:regex", "dep:semver", "dep:serde_json", "dep:smallvec", "dep:stable_deref_trait", "dep:strsim", "dep:time", "dep:time-macros", "dep:tinystr", "dep:tokio", "dep:tokio-util", "dep:toml", "dep:tracing", "dep:unicode-bidi", "dep:url", "dep:windows", "dep:windows-sys", "dep:yoke", "dep:zerocopy", "dep:zerofrom", "dep:zerovec"]
jsrust = ["dep:allocator-api2", "dep:arrayvec", "dep:byteorder", "dep:cc", "dep:env_logger", "dep:form_urlencoded", "dep:getrandom", "dep:hashbrown", "dep:icu_locale_core", "dep:icu_properties", "dep:idna", "dep:indexmap", "dep:log", "dep:memchr", "dep:num-traits", "dep:once_cell", "dep:percent-encoding", "dep:semver", "dep:smallvec", "dep:stable_deref_trait", "dep:tinystr", "dep:unicode-bidi", "dep:url", "dep:yoke", "dep:zerocopy", "dep:zerofrom", "dep:zerovec"]
crashreporter-android-export = ["dep:allocator-api2", "dep:arrayvec", "dep:bitflags", "dep:byteorder", "dep:clap", "dep:env_logger", "dep:futures-channel", "dep:futures-core", "dep:futures-executor", "dep:futures-sink", "dep:futures-util", "dep:getrandom", "dep:hashbrown", "dep:hex", "dep:indexmap", "dep:log", "dep:memchr", "dep:nom", "dep:num-traits", "dep:object", "dep:once_cell", "dep:scroll", "dep:serde_json", "dep:time", "dep:time-macros", "dep:tracing", "dep:uuid", "dep:windows-sys", "dep:zerocopy"]
mozwer_s = ["dep:allocator-api2", "dep:byteorder", "dep:getrandom", "dep:hashbrown", "dep:indexmap", "dep:log", "dep:once_cell", "dep:scroll", "dep:serde_json", "dep:uuid", "dep:windows-sys", "dep:zerocopy"]
nmhproxy = ["dep:allocator-api2", "dep:bitflags", "dep:byteorder", "dep:form_urlencoded", "dep:hashbrown", "dep:icu_locale_core", "dep:icu_properties", "dep:idna", "dep:indexmap", "dep:once_cell", "dep:percent-encoding", "dep:serde_json", "dep:smallvec", "dep:stable_deref_trait", "dep:tinystr", "dep:unicode-bidi", "dep:url", "dep:windows-sys", "dep:yoke", "dep:zerocopy", "dep:zerofrom", "dep:zerovec"]
pkcs11testmodule-static = []
test-trust-anchors-static = ["dep:bindgen", "dep:bitflags", "dep:itertools", "dep:memchr", "dep:nom", "dep:regex", "dep:smallvec"]
toolchain-embedded-uniffi-bindgen = []
toolchain-nimbus-fml = []
megazord = []
embedded-uniffi-bindgen = []
nimbus-fml = []
