mirror of
https://chromium.googlesource.com/crosvm/crosvm
synced 2025-02-11 04:26:38 +00:00
We are about to require ffmpeg >= 5.0 in the ffmpeg decoder backend, but the version on Debian Bullseye (used in our container and VM images) is still 4.3. Temporarily disable building the ffmpeg crate and video decoder by default until we use a system image that includes ffmpeg >= 5.0. BUG=None TEST=./tools/dev_container ./tools/run_tests TEST=./tools/dev_container ./tools/run_tests --target=vm:aarch64 TEST=./tools/dev_container ./tools/run_tests --target=vm:aarch64 --build-target armhf Change-Id: Idf96862d3ea9bea597701fdee8145e12a0753a3e Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3835500 Tested-by: Alexandre Courbot <acourbot@chromium.org> Reviewed-by: Dennis Kempin <denniskempin@google.com> Commit-Queue: Alexandre Courbot <acourbot@chromium.org>
246 lines
6.5 KiB
TOML
246 lines
6.5 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",
|
|
"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",
|
|
"protos",
|
|
"qcow_utils",
|
|
"resources",
|
|
"rutabaga_gfx",
|
|
"serde_keyvalue",
|
|
"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.
|
|
"composite-disk",
|
|
"default",
|
|
"gdb",
|
|
"tpm",
|
|
"virgl_renderer_next",
|
|
"virgl_renderer",
|
|
"x",
|
|
]
|
|
win64 = ["devices/stats", "balloon", "haxm"]
|
|
audio = ["devices/audio"]
|
|
audio_cras = ["devices/audio_cras"]
|
|
balloon = ["devices/balloon", "vm_control/balloon"]
|
|
chromeos = ["base/chromeos", "audio_cras", "devices/chromeos"]
|
|
composite-disk = ["protos/composite-disk", "protobuf", "disk/composite-disk"]
|
|
crash-report = []
|
|
default = ["audio", "balloon", "gpu", "usb"]
|
|
default-no-sandbox = []
|
|
direct = ["balloon", "devices/direct", "arch/direct", "x86_64/direct"]
|
|
ffmpeg = ["devices/ffmpeg"]
|
|
gdb = ["gdbstub", "gdbstub_arch", "arch/gdb", "vm_control/gdb", "x86_64/gdb"]
|
|
gfxstream = ["devices/gfxstream"]
|
|
gpu = ["devices/gpu"]
|
|
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"]
|
|
plugin = ["protos/plugin", "crosvm_plugin", "kvm", "kvm_sys", "protobuf"]
|
|
plugin-render-server = []
|
|
power-monitor-powerd = ["arch/power-monitor-powerd"]
|
|
slirp = ["devices/slirp"]
|
|
tpm = ["devices/tpm"]
|
|
usb = ["devices/usb"]
|
|
video-decoder = ["devices/video-decoder"]
|
|
video-encoder = ["devices/video-encoder"]
|
|
virgl_renderer = ["devices/virgl_renderer"]
|
|
virgl_renderer_next = ["rutabaga_gfx/virgl_renderer_next"]
|
|
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"
|
|
crosvm_plugin = { path = "crosvm_plugin", optional = true }
|
|
data_model = "*"
|
|
devices = { path = "devices" }
|
|
disk = { path = "disk" }
|
|
enumn = "0.1.0"
|
|
gdbstub = { version = "0.6.1", optional = true }
|
|
gdbstub_arch = { version = "0.2.2", 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"}
|
|
|
|
[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" }
|
|
system_api = { path = "system_api_stub" } # ignored by ebuild
|
|
wire_format_derive = { path = "common/p9/wire_format_derive" } # ignored by ebuild
|
|
minijail = { path = "third_party/minijail/rust/minijail" } # ignored by ebuild
|