| cargo-features = ["named-profiles"] |
| |
| [package] |
| name = "crosvm" |
| version = "0.1.0" |
| authors = ["The Chromium OS Authors"] |
| edition = "2021" |
| default-run = "crosvm" |
| # b:223855233 |
| resolver = "1" |
| |
| [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 |
| |
| [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", |
| "arch", |
| "base", |
| "bit_field", |
| "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", |
| "libcras_stub", |
| "libvda", |
| "linux_input_sys", |
| "net_sys", |
| "net_util", |
| "power_monitor", |
| "protos", |
| "qcow_utils", |
| "resources", |
| "rutabaga_gfx", |
| "serde_keyvalue", |
| "system_api_stub", |
| "tpm2", |
| "tpm2-sys", |
| "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", |
| "common/sys_util", |
| "common/sys_util_core", |
| "common/win_sys_util", |
| "win_util", |
| ] |
| |
| [features] |
| all-linux = [ |
| # TODO(b/203105868): Enable remaining features on linux builds. |
| "composite-disk", |
| "default", |
| "gdb", |
| "tpm", |
| "virgl_renderer_next", |
| "virgl_renderer", |
| "x", |
| ] |
| audio = ["devices/audio"] |
| audio_cras = ["devices/audio_cras"] |
| chromeos = ["base/chromeos", "audio_cras", "devices/chromeos"] |
| composite-disk = ["protos/composite-disk", "protobuf", "disk/composite-disk"] |
| default = ["audio", "gpu", "usb"] |
| default-no-sandbox = [] |
| direct = ["devices/direct", "arch/direct", "x86_64/direct"] |
| gdb = ["gdbstub", "gdbstub_arch", "arch/gdb", "vm_control/gdb", "x86_64/gdb"] |
| gfxstream = ["devices/gfxstream"] |
| gpu = ["devices/gpu"] |
| 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"] |
| power-monitor-powerd = ["arch/power-monitor-powerd"] |
| 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" } |
| assertions = { path = "common/assertions" } |
| audio_streams = "*" |
| base = { path = "base" } |
| bit_field = { path = "bit_field" } |
| crosvm_plugin = { path = "crosvm_plugin", optional = true } |
| data_model = "*" |
| devices = { path = "devices" } |
| disk = { path = "disk" } |
| enumn = "0.1.0" |
| gdbstub = { version = "0.5.0", optional = true } |
| gdbstub_arch = { version = "0.1.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.93" |
| libcras = "*" |
| minijail = "*" # provided by ebuild |
| net_util = { path = "net_util" } |
| p9 = "*" |
| protobuf = { version = "2.3", optional = true } |
| protos = { path = "protos", optional = true } |
| remain = "*" |
| resources = { path = "resources" } |
| scudo = { version = "0.1", optional = true } |
| serde_json = "*" |
| serde_keyvalue = { path = "serde_keyvalue" } |
| sync = { path = "common/sync" } |
| tempfile = "3" |
| thiserror = { version = "1.0.20" } |
| uuid = { version = "0.8.2" } |
| 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 = { path = "base" } |
| |
| [patch.crates-io] |
| assertions = { path = "common/assertions" } |
| audio_streams = { path = "common/audio_streams" } |
| base = { path = "base" } |
| sys_util_core = { path = "common/sys_util_core" } |
| 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" } |
| sys_util = { path = "common/sys_util" } |
| system_api = { path = "system_api_stub" } # ignored by ebuild |
| wire_format_derive = { path = "common/p9/wire_format_derive" } # ignored by ebuild |
| minijail = { path = "../minijail/rust/minijail" } # ignored by ebuild |