crosvm/Cargo.toml
Vikram Auradkar ce5172c899 crosvm: upstream windows src
- Upstreams all windows specific files in src/
- Adds windows specific args to Config/Command parsing.
- Adds noop anti tamper crate.

There are still some deltas between upstream and downstream src because
of moving HEAD in upstream and some code refactors downstream. But this
is most of the code.

BUG=b:213146388
TEST=built on windows downstream. upstream crosvm does not build on
     windows yet because of to-be-upstreamed dependency crates.
     presubmit.

Change-Id: I3445975749f8108ae51d5fb6e1c2f1447439e1fb
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3765346
Commit-Queue: Vikram Auradkar <auradkar@google.com>
Auto-Submit: Vikram Auradkar <auradkar@google.com>
Tested-by: Vikram Auradkar <auradkar@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
2022-07-19 20:58:59 +00:00

235 lines
6.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",
"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"
]
[features]
all-linux = [
# TODO(b/203105868): Enable remaining features on linux builds.
"composite-disk",
"default",
"ffmpeg",
"gdb",
"tpm",
"video-decoder",
"virgl_renderer_next",
"virgl_renderer",
"x",
]
win64 = []
audio = ["devices/audio"]
audio_cras = ["devices/audio_cras"]
chromeos = ["base/chromeos", "audio_cras", "devices/chromeos"]
composite-disk = ["protos/composite-disk", "protobuf", "disk/composite-disk"]
crash-report = []
default = ["audio", "gpu", "usb"]
default-no-sandbox = []
direct = ["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", "vm_memory/udmabuf"]
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" }
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 = "*"
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(windows)'.dependencies]
tube_transporter = { path = "tube_transporter" }
[dev-dependencies]
base = "*"
once_cell = "1.7"
[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