mirror of
https://chromium.googlesource.com/crosvm/crosvm
synced 2024-11-24 20:48:55 +00:00
c4a4dc9b23
BUG=b:237011316 TEST=presubmit and tested in wine Change-Id: I1b6160142b8161d4b09d3fd98dfacde354e238b4 Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3934818 Reviewed-by: Dennis Kempin <denniskempin@google.com> Commit-Queue: Vikram Auradkar <auradkar@google.com>
275 lines
7.1 KiB
TOML
275 lines
7.1 KiB
TOML
[package]
|
|
name = "crosvm"
|
|
version = "0.1.0"
|
|
authors = ["The Chromium OS Authors"]
|
|
edition = "2021"
|
|
default-run = "crosvm"
|
|
# b:223855233
|
|
resolver = "1"
|
|
|
|
[[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
|
|
|
|
[profile.release-test]
|
|
inherits = 'release'
|
|
panic = 'unwind'
|
|
|
|
# Reproduces the options used when building crosvm for Chrome OS.
|
|
[profile.chromeos]
|
|
inherits = "release"
|
|
opt-level = "s"
|
|
|
|
# Enables LTO to further reduce the size of the binary.
|
|
[profile.lto]
|
|
inherits = "chromeos"
|
|
lto = true
|
|
|
|
# We currently need to exclude some crates from the workspace to allow
|
|
# these crates to be independently built by portage. These crates will
|
|
# eventually be moved into separate repositories.
|
|
# The only workspace members that need to be explicitly specified here are those
|
|
# that are not dependencies of the crosvm root crate.
|
|
[workspace]
|
|
members = [
|
|
"aarch64",
|
|
"acpi_tables",
|
|
"anti_tamper",
|
|
"arch",
|
|
"argh_helpers",
|
|
"base",
|
|
"bit_field",
|
|
"broker_ipc",
|
|
"crash_report",
|
|
"cros_async",
|
|
"crosvm-fuzz",
|
|
"crosvm_control",
|
|
"crosvm_plugin",
|
|
"devices",
|
|
"disk",
|
|
"fuse",
|
|
"gpu_display",
|
|
"hypervisor",
|
|
"integration_tests",
|
|
"io_uring",
|
|
"kernel_cmdline",
|
|
"kernel_loader",
|
|
"kvm",
|
|
"kvm_sys",
|
|
"linux_input_sys",
|
|
"media/ffmpeg",
|
|
"media/libva",
|
|
"media/libvda",
|
|
"media/vp8",
|
|
"net_sys",
|
|
"net_util",
|
|
"power_monitor",
|
|
"prebuilts",
|
|
"protos",
|
|
"qcow_utils",
|
|
"resources",
|
|
"rutabaga_gfx",
|
|
"serde_keyvalue",
|
|
"system_api",
|
|
"tpm2",
|
|
"tpm2-sys",
|
|
"tracing",
|
|
"usb_sys",
|
|
"usb_util",
|
|
"vfio_sys",
|
|
"vhost",
|
|
"virtio_sys",
|
|
"vm_control",
|
|
"vm_memory",
|
|
"x86_64",
|
|
"third_party/vmm_vhost",
|
|
]
|
|
exclude = [
|
|
"common/assertions",
|
|
"common/audio_streams",
|
|
"common/balloon_control",
|
|
"common/cros-fuzz",
|
|
"common/cros_async",
|
|
"common/cros_asyncv2",
|
|
"common/data_model",
|
|
"common/io_uring",
|
|
"common/p9",
|
|
"common/sync",
|
|
"tube_transporter",
|
|
"win_util",
|
|
"tools/examples/baremetal",
|
|
"tools/audio_streams_conformance_test",
|
|
]
|
|
|
|
[features]
|
|
all-linux = [
|
|
# TODO(b/203105868): Enable remaining features on linux builds.
|
|
"arc_quota",
|
|
"audio_cras",
|
|
"composite-disk",
|
|
"crash-report",
|
|
"default",
|
|
"ffmpeg",
|
|
"gdb",
|
|
"power-monitor-powerd",
|
|
"slirp",
|
|
"tpm",
|
|
"vtpm",
|
|
"video-decoder",
|
|
"virgl_renderer_next",
|
|
"virgl_renderer",
|
|
"wl-dmabuf",
|
|
"x",
|
|
]
|
|
win64 = [ "balloon", "crash_report", "haxm", "slirp", "stats" ]
|
|
arc_quota = ["devices/arc_quota"]
|
|
audio = ["devices/audio"]
|
|
audio_cras = ["devices/audio_cras"]
|
|
balloon = ["devices/balloon", "vm_control/balloon"]
|
|
chromeos = ["base/chromeos", "audio_cras", "devices/chromeos", "panic-memfd", "arc_quota", "vtpm"]
|
|
composite-disk = ["protos/composite-disk", "protobuf", "disk/composite-disk"]
|
|
crash-report = ["broker_ipc/crash-report", "crash_report"]
|
|
default = ["audio", "balloon", "gpu", "qcow", "usb"]
|
|
default-no-sandbox = []
|
|
direct = ["balloon", "devices/direct", "arch/direct", "x86_64/direct"]
|
|
ffmpeg = ["devices/ffmpeg"]
|
|
gdb = [
|
|
"aarch64/gdb",
|
|
"arch/gdb",
|
|
"gdbstub",
|
|
"gdbstub_arch",
|
|
"vm_control/gdb",
|
|
"x86_64/gdb",
|
|
]
|
|
gfxstream = ["devices/gfxstream"]
|
|
gpu = ["devices/gpu", "gpu_display"]
|
|
haxm = ["hypervisor/haxm"]
|
|
whpx = ["devices/whpx", "hypervisor/whpx"]
|
|
vaapi = ["devices/vaapi"]
|
|
libvda = ["devices/libvda"]
|
|
linux-armhf = [
|
|
"composite-disk",
|
|
"default",
|
|
"gdb",
|
|
"tpm",
|
|
]
|
|
linux-x86_64 = ["all-linux", "plugin"]
|
|
linux-aarch64 = ["all-linux"]
|
|
panic-memfd = []
|
|
plugin = ["protos/plugin", "crosvm_plugin", "kvm", "kvm_sys", "protobuf"]
|
|
plugin-render-server = []
|
|
power-monitor-powerd = ["arch/power-monitor-powerd"]
|
|
qcow = ["disk/qcow"]
|
|
slirp = ["devices/slirp", "net_util/slirp"]
|
|
stats = ["devices/stats"]
|
|
tpm = ["devices/tpm"]
|
|
usb = ["devices/usb"]
|
|
video-decoder = ["devices/video-decoder"]
|
|
video-encoder = ["devices/video-encoder"]
|
|
virgl_renderer = ["devices/virgl_renderer"]
|
|
virgl_renderer_next = ["devices/virgl_renderer_next", "rutabaga_gfx/virgl_renderer_next"]
|
|
vtpm = ["devices/vtpm"]
|
|
wl-dmabuf = ["devices/minigbm"]
|
|
x = ["devices/x"]
|
|
|
|
[dependencies]
|
|
anyhow = "1.0.32"
|
|
arch = { path = "arch" }
|
|
argh = "0.1"
|
|
argh_helpers = { path = "argh_helpers" }
|
|
assertions = { path = "common/assertions" }
|
|
audio_streams = "*"
|
|
base = "*"
|
|
bit_field = { path = "bit_field" }
|
|
broker_ipc = { path = "broker_ipc" }
|
|
cfg-if = "1.0.0"
|
|
crash_report = { path = "crash_report", optional = true }
|
|
cros_async = { path = "cros_async" }
|
|
crosvm_plugin = { path = "crosvm_plugin", optional = true }
|
|
data_model = "*"
|
|
devices = { path = "devices" }
|
|
disk = { path = "disk" }
|
|
enumn = "0.1.0"
|
|
gdbstub = { version = "0.6.3", optional = true }
|
|
gdbstub_arch = { version = "0.2.4", 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.93"
|
|
libcras = "*"
|
|
# Compile out trace statements in release builds
|
|
log = { version = "0", features = ["release_max_level_debug"]}
|
|
metrics = { path = "metrics" }
|
|
net_util = { path = "net_util" }
|
|
once_cell = "1.7"
|
|
protobuf = { version = "2.3", optional = true }
|
|
protos = { path = "protos", optional = true }
|
|
remain = "*"
|
|
resources = { path = "resources" }
|
|
scudo = { version = "0.1", optional = true }
|
|
serde = "*"
|
|
serde_json = "*"
|
|
serde_keyvalue = { path = "serde_keyvalue", features = ["argh_derive"] }
|
|
sync = { path = "common/sync" }
|
|
tempfile = "3"
|
|
terminal_size = "0.1.17"
|
|
thiserror = { version = "1.0.20" }
|
|
uuid = { version = "0.8.2", features = [ "serde" ] }
|
|
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" }
|
|
|
|
[target.'cfg(unix)'.dependencies]
|
|
minijail = "*" # provided by ebuild
|
|
p9 = "*"
|
|
|
|
[target.'cfg(windows)'.dependencies]
|
|
anti_tamper = { path = "anti_tamper" }
|
|
cros_async = { path = "cros_async" }
|
|
ctrlc = "*"
|
|
futures = "0.3"
|
|
gpu_display = { path = "gpu_display", optional = true }
|
|
rand = "0.8"
|
|
tracing = { path = "tracing" }
|
|
tube_transporter = { path = "tube_transporter" }
|
|
winapi = "*"
|
|
win_util = { path = "win_util"}
|
|
|
|
[build-dependencies]
|
|
cc = "*"
|
|
|
|
[dev-dependencies]
|
|
base = "*"
|
|
prebuilts = { path = "prebuilts" }
|
|
|
|
[patch.crates-io]
|
|
assertions = { path = "common/assertions" }
|
|
audio_streams = { path = "common/audio_streams" }
|
|
base = { path = "base" }
|
|
cros_async = { path = "cros_async" }
|
|
cros_fuzz = { path = "common/cros-fuzz" } # ignored by ebuild
|
|
data_model = { path = "common/data_model" }
|
|
libcras = { path = "libcras_stub" } # ignored by ebuild
|
|
p9 = { path = "common/p9" } # ignored by ebuild
|
|
sync = { path = "common/sync" }
|
|
wire_format_derive = { path = "common/p9/wire_format_derive" } # ignored by ebuild
|
|
minijail = { path = "third_party/minijail/rust/minijail" } # ignored by ebuild
|