blob: 3b2f0cf8af662ff67c5ea4274bbd8340048fd0d3 [file] [log] [blame]
[package]
name = "crosvm"
version = "0.1.0"
authors = ["The Chromium OS Authors"]
edition = "2018"
default-run = "crosvm"
[lib]
path = "src/crosvm.rs"
[[bin]]
name = "crosvm"
path = "src/main.rs"
[[bin]]
name = "crosvm-direct"
path = "src/main.rs"
required-features = [ "direct" ]
[profile.release]
panic = 'abort'
overflow-checks = true
[workspace]
members = [
"fuzz",
"qcow_utils",
"integration_tests",
"libcrosvm_control",
]
exclude = [
"assertions",
"base",
"cros_async",
"data_model",
"rand_ish",
"sync",
"sys_util",
"syscall_defines",
"tempfile",
"vm_memory",
]
[features]
default = ["audio", "gpu"]
chromeos = ["base/chromeos"]
default-no-sandbox = []
direct = ["devices/direct"]
audio = ["devices/audio"]
gpu = ["devices/gpu"]
plugin = ["protos/plugin", "crosvm_plugin", "kvm", "kvm_sys", "protobuf"]
power-monitor-powerd = ["arch/power-monitor-powerd"]
tpm = ["devices/tpm"]
video-decoder = ["devices/video-decoder"]
video-encoder = ["devices/video-encoder"]
wl-dmabuf = ["devices/minigbm"]
x = ["devices/x"]
virgl_renderer_next = ["rutabaga_gfx/virgl_renderer_next"]
composite-disk = ["protos/composite-disk", "protobuf", "disk/composite-disk"]
virgl_renderer = ["devices/virgl_renderer"]
gfxstream = ["devices/gfxstream"]
gdb = ["gdbstub", "thiserror", "arch/gdb", "vm_control/gdb", "x86_64/gdb"]
udmabuf = ["devices/udmabuf"]
[dependencies]
arch = { path = "arch" }
assertions = { path = "assertions" }
audio_streams = "*"
base = "*"
bit_field = { path = "bit_field" }
crosvm_plugin = { path = "crosvm_plugin", optional = true }
data_model = "*"
devices = { path = "devices" }
disk = { path = "disk" }
enumn = { path = "enumn" }
gdbstub = { version = "0.4.0", optional = true }
rutabaga_gfx = { path = "rutabaga_gfx"}
hypervisor = { path = "hypervisor" }
kernel_cmdline = { path = "kernel_cmdline" }
kernel_loader = { path = "kernel_loader" }
kvm = { path = "kvm", optional = true }
kvm_sys = { path = "kvm_sys", optional = true }
libc = "0.2.65"
libcras = "*"
minijail = "*" # provided by ebuild
net_util = { path = "net_util" }
p9 = "*"
protobuf = { version = "2.3", optional = true }
protos = { path = "protos", optional = true }
rand_ish = { path = "rand_ish" }
remain = "*"
resources = { path = "resources" }
sync = { path = "sync" }
tempfile = "*"
thiserror = { version = "1.0.20", optional = true }
vhost = { path = "vhost" }
vm_control = { path = "vm_control" }
acpi_tables = { path = "acpi_tables" }
vm_memory = { path = "vm_memory" }
[target.'cfg(target_arch = "x86_64")'.dependencies]
x86_64 = { path = "x86_64" }
[target.'cfg(any(target_arch = "aarch64", target_arch = "arm"))'.dependencies]
aarch64 = { path = "aarch64" }
[dev-dependencies]
base = "*"
[patch.crates-io]
assertions = { path = "assertions" }
audio_streams = { path = "../../third_party/adhd/audio_streams" } # ignored by ebuild
base = { path = "base" }
cros_fuzz = { path = "../../platform2/cros-fuzz" } # ignored by ebuild
data_model = { path = "data_model" }
libcras = { path = "../../third_party/adhd/cras/client/libcras" } # ignored by ebuild
libchromeos = { path = "../../platform2/libchromeos-rs" } # ignored by ebuild
libvda = { path = "../../platform2/arc/vm/libvda/rust" } # ignored by ebuild
minijail = { path = "../../aosp/external/minijail/rust/minijail" } # ignored by ebuild
p9 = { path = "../../platform2/vm_tools/p9" } # ignored by ebuild
sync = { path = "sync" }
syscall_defines = { path = "syscall_defines" }
sys_util = { path = "sys_util" }
tempfile = { path = "tempfile" }
vmm_vhost = { path = "../../third_party/rust-vmm/vhost", features = ["vhost-user-master"] } # ignored by ebuild
wire_format_derive = { path = "../../platform2/vm_tools/p9/wire_format_derive" } # ignored by ebuild