[package]
name = "stratovirt"
version = "2.5.0"
authors = ["Huawei StratoVirt Team"]
edition = "2021"
description = "a lightweight hypervisor with low memory overhead and fast booting speed"
license = "Mulan PSL v2"

[dependencies]
thiserror = "1.0"
anyhow = "1.0"
log = "0.4"
machine = { path = "machine" }
machine_manager = { path = "machine_manager" }
util = { path = "util" }
trace = { path = "trace" }
hisysevent = { path = "hisysevent" }

[target.'cfg(target_env = "ohos")'.dependencies]
machine = { path = "machine", features = ["usb_storage", "virtio_balloon", "virtio_mem", "virtio_serial", "virtio_input", "virtio_multitouch", "vhostuser_fs"] }

[workspace]
members = [
    "ozone",
    "image",
    "tests/mod_test",
]

[features]
default = []
boot_time = ["machine/boot_time"]
scream_alsa = ["machine/scream_alsa"]
scream_pulseaudio = ["machine/scream_pulseaudio"]
scream_ohaudio = ["machine/scream_ohaudio"]
pvpanic = ["machine/pvpanic"]
demo_device = ["machine/demo_device"]
usb_base = ["machine/usb_base"]
usb_storage = ["machine/usb_storage"]
usb_host = ["machine/usb_host"]
usb_camera_v4l2 = ["machine/usb_camera_v4l2"]
usb_camera_oh = ["machine/usb_camera_oh"]
gtk = ["machine/gtk"]
vnc = ["machine/vnc"]
vnc_auth = ["machine/vnc_auth"]
ohui_srv = ["machine/ohui_srv"]
ramfb = ["machine/ramfb"]
virtio_balloon = ["machine/virtio_balloon"]
virtio_mem = ["machine/virtio_mem"]
virtio_serial = ["machine/virtio_serial"]
virtio_input = ["machine/virtio_input"]
virtio_multitouch = ["machine/virtio_multitouch"]
virtio_gpu = ["machine/virtio_gpu"]
trace_to_logger = ["trace/trace_to_logger", "machine/trace_to_logger", "machine_manager/trace"]
trace_to_ftrace = ["trace/trace_to_ftrace", "machine/trace_to_ftrace", "machine_manager/trace"]
trace_to_hitrace = ["trace/trace_to_hitrace", "machine/trace_to_hitrace", "machine_manager/trace"]
hisysevent = ["hisysevent/hisysevent"]
vfio = ["machine/vfio_device"]
usb_uas = ["machine/usb_uas"]
usb_consumer = ["machine/usb_consumer"]
virtio_rng = ["machine/virtio_rng"]
virtio_scsi = ["machine/virtio_scsi"]
virtio_pmem = ["machine/virtio_pmem"]
virtio_snd = ["machine/virtio_snd"]
vhost_vsock = ["machine/vhost_vsock"]
vhostuser_fs = ["machine/vhostuser_fs"]
vhostuser_block = ["machine/vhostuser_block"]
vhostuser_gpu = ["machine/vhostuser_gpu"]
vhostuser_net = ["machine/vhostuser_net"]
vhost_net = ["machine/vhost_net"]

[package.metadata.rpm.cargo]
buildflags = ["--release"]

[package.metadata.rpm.targets]
stratovirt = { path = "/usr/bin/stratovirt" }

[profile.dev]
panic = "abort"

[profile.release]
panic = "abort"
lto = true
debug = true
opt-level = "s"
codegen-units = 1

[profile.release.package.cpu]
opt-level = 3

[profile.release.package.hypervisor]
opt-level = 3

[profile.release.package.address_space]
opt-level = 3

[profile.release.package.virtio]
opt-level = 3

[profile.release.package.block_backend]
opt-level = 3

[profile.release.package.devices]
opt-level = 3

[profile.release.package.util]
opt-level = 3