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

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

[features]
default = [
  "gdb",
  "virt_hvf",
  "virt_kvm",
  "virt_mshv",
  "virt_whp",
  "net_consomme",
  "net_tap",
  "disk_blob",
  "disklayer_sqlite",
]

# see the `openvmm_entry` crate for more info on these features
encryption = ["openvmm_entry/encryption"]
gdb = ["openvmm_resources/gdb"]
openssl-vendored = ["openvmm_entry/openssl-vendored"]
tpm = ["openvmm_resources/tpm"]
virt_hvf = ["openvmm_resources/virt_hvf"]
virt_kvm = ["openvmm_resources/virt_kvm"]
virt_mshv = ["openvmm_resources/virt_mshv"]
virt_whp = ["openvmm_resources/virt_whp"]

net_consomme = ["openvmm_resources/net_consomme"]
net_tap = ["openvmm_resources/net_tap"]

disk_blob = ["openvmm_resources/disk_blob"]
disk_crypt = ["openvmm_resources/disk_crypt"]
disklayer_sqlite = ["openvmm_resources/disklayer_sqlite"]

# build openvmm to support the latest insider build of windows on arm
# rather than latest release build
# TODO: remove once whp on arm is stabilized
unstable_whp = ["openvmm_entry/unstable_whp", "openvmm_resources/unstable_whp"]

[dependencies]
openvmm_entry.workspace = true
openvmm_resources.workspace = true

[target.'cfg(windows)'.dependencies]
win_prng_support.workspace = true

[lints]
workspace = true
