# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.

[package]
name = "openvmm_entry"
edition.workspace = true
rust-version.workspace = true

[features]
default = ["ttrpc", "grpc"]

# Enable locally compiling and statically linking a copy of OpenSSL.
# The build process requires a C compiler, perl, and make.
openssl-vendored = ["openssl/vendored"]

encryption = ["vmotherboard/encryption"]

unstable_whp = ["virt_whp/unstable_whp", "whp/unstable_whp"]

grpc = ["mesh_rpc/grpc"]
ttrpc = []

[dependencies]
chipset_resources.workspace = true
debug_worker_defs.workspace = true
vmotherboard.workspace = true
diag_client.workspace = true
hvlite_defs.workspace = true
hvlite_helpers.workspace = true
vmm_core_defs.workspace = true
vnc_worker_defs.workspace = true
hvlite_pcat_locator.workspace = true
hvlite_ttrpc_vmservice.workspace = true
disk_backend_resources.workspace = true
disk_crypt_resources.workspace = true
disk_vhd1.workspace = true
firmware_uefi_custom_vars.workspace = true
hyperv_secure_boot_templates.workspace = true
hyperv_uefi_custom_vars_json.workspace = true
floppy_resources.workspace = true
framebuffer.workspace = true
gdma_resources.workspace = true
get_resources.workspace = true
hyperv_ic_resources.workspace = true
ide_resources.workspace = true
input_core.workspace = true
net_backend_resources.workspace = true
netvsp_resources.workspace = true
nvme_resources.workspace = true
scsidisk_resources.workspace = true
serial_core.workspace = true
serial_16550_resources.workspace = true
serial_socket.workspace = true
storvsp_resources.workspace = true
tpm_resources.workspace = true
uidevices_resources.workspace = true
video_core.workspace = true
virtio_resources.workspace = true
vmbfs_resources.workspace = true
vmbus_core.workspace = true
vmbus_serial_resources.workspace = true
vmcore.workspace = true
vmgs_format.workspace = true
vmgs_resources.workspace = true
vm_manifest_builder.workspace = true
vm_resource.workspace = true
vtl2_settings_proto.workspace = true
mcr_resources.workspace = true

clap_dyn_complete.workspace = true
console_relay.workspace = true
guid.workspace = true
inspect.workspace = true
inspect_proto.workspace = true
mesh.workspace = true
mesh_rpc.workspace = true
mesh_process.workspace = true
mesh_worker.workspace = true
pal.workspace = true
unix_socket.workspace = true
pal_async.workspace = true
sparse_mmap.workspace = true
term.workspace = true
tracelimit.workspace = true
tracing_helpers.workspace = true

anyhow.workspace = true
awaitgroup.workspace = true
clap = { workspace = true, features = ["derive", "string"] }
dirs.workspace = true
fs-err.workspace = true
futures.workspace = true
futures-concurrency.workspace = true
getrandom.workspace = true
openssl = { optional = true, workspace = true }
macaddr.workspace = true
parking_lot.workspace = true
prost.workspace = true
rustyline = { workspace = true, features = ["derive"] }
shell-words.workspace = true
tempfile.workspace = true
thiserror.workspace = true
tracing.workspace = true
tracing-subscriber = { workspace = true, features = ["env-filter"] }
unicycle.workspace = true

[target.'cfg(windows)'.dependencies]
vmswitch.workspace = true
virt_whp.workspace = true
vmbus_proxy.workspace = true
whp.workspace = true

win_etw_tracing.workspace = true

[target.'cfg(windows)'.dependencies.winapi]
features = [
  "consoleapi",
  "handleapi",
  "memoryapi",
  "namedpipeapi",
  "processenv",
  "realtimeapiset",
  "synchapi",
  "winbase",
  "wincon",
  "winnls",
  "winnt",
  "winsock2",
]
workspace = true

[build-dependencies]
build_rs_guest_arch.workspace = true

[lints]
workspace = true

[package.metadata.xtask.unused-deps]
# keep the ossl dep so we can specify the vendored feature
ignored = ["openssl"]
