mirror of
https://chromium.googlesource.com/crosvm/crosvm
synced 2025-02-09 20:04:20 +00:00
4c211a4d41
And enable it in upstream all-linux builds. The feature is enabled for chromeos by default, so should be a no-op for chromeos builds. We can probably simplify the cfg() attributes further by only enabling the feature for x86, so we do not need the extra check each time. But that'll require ebuild changes. BUG=b:244618505 TEST=presubmit TEST=cargo build --no-default-features --features=vtpm Change-Id: Ibb33c04ab5e6486969fefc6f3e57503be4eccdf3 Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3924741 Commit-Queue: Dennis Kempin <denniskempin@google.com> Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
272 lines
7 KiB
TOML
272 lines
7 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",
|
|
"gdb",
|
|
"power-monitor-powerd",
|
|
"slirp",
|
|
"tpm",
|
|
"vtpm",
|
|
"virgl_renderer_next",
|
|
"virgl_renderer",
|
|
"wl-dmabuf",
|
|
"x",
|
|
]
|
|
win64 = [ "balloon", "crash_report", "haxm", "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"]
|
|
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 = "*"
|
|
|
|
[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
|