blob: 1480656f05001e766b41a0e55f2971dd194f4735 [file] [log] [blame]
// This file is generated by cargo2android.py --run --device --tests --dependencies --no-subdir.
// Most modules in this file are edited manually:
// * global defaults defined in crosvm_defaults, enabled for linux_glibc_x86_64
// * all modules use crosvm_defaults or other defaults derived from it
// * root host binary is crosvm
// * crosvm and libcrosvm have extra features:
// * audio, gfxstream, gpu
// * crosvm has extra flags and ld_flags
// * crosvm_host_test_tests_boot and crosvm_host_test_tests_plugins
// are not ready yet
// We use cargo2android.py only to discover new changes.
// * Use --no-subdir to suppress output of subdirectory Android.bp files.
// * Run cargo2android.py in each subdirectory to generate .bp files.
package {
default_applicable_licenses: ["external_crosvm_license"],
}
// Added automatically by a large-scale-change that took the approach of
// 'apply every license found to every target'. While this makes sure we respect
// every license restriction, it may not be entirely correct.
//
// e.g. GPL in an MIT project might only apply to the contrib/ directory.
//
// Please consider splitting the single license below into multiple licenses,
// taking care not to lose any license_kind information, and overriding the
// default license using the 'licenses: [...]' property on targets as needed.
//
// For unused files, consider creating a 'fileGroup' with "//visibility:private"
// to attach the license to, and including a comment whether the files may be
// used in the current project.
// See: http://go/android-license-faq
license {
name: "external_crosvm_license",
visibility: [":__subpackages__"],
license_kinds: [
"SPDX-license-identifier-Apache-2.0",
"SPDX-license-identifier-BSD",
"SPDX-license-identifier-MIT",
],
license_text: [
"LICENSE",
],
}
rust_defaults {
name: "crosvm_defaults",
edition: "2018",
enabled: false,
target: {
linux_glibc_x86_64: {
enabled: true,
},
android64: {
compile_multilib: "64",
enabled: true,
},
linux_bionic_arm64: {
enabled: true,
},
darwin: {
enabled: false,
},
},
apex_available: [
"//apex_available:platform",
"com.android.virt",
],
}
rust_defaults {
name: "crosvm_proc_macro_defaults",
defaults: ["crosvm_defaults"],
target: {
darwin: {
enabled: true,
},
},
}
rust_binary {
name: "crosvm",
defaults: ["crosvm_defaults"],
host_supported: true,
prefer_rlib: true,
crate_name: "crosvm",
srcs: ["src/main.rs"],
target: {
linux_bionic_arm64: {
relative_install_path: "aarch64-linux-bionic",
},
linux_glibc_x86_64: {
features: [
"gdb",
"gdbstub",
],
relative_install_path: "x86_64-linux-gnu",
rustlibs: [
"libgdbstub",
"libgdbstub_arch",
"libthiserror",
],
},
darwin: {
enabled: false,
},
},
arch: {
x86_64: {
rustlibs: ["libx86_64_rust"],
},
arm64: {
rustlibs: ["libaarch64"],
},
},
edition: "2018",
features: [
"audio",
"default",
"gpu",
"gfxstream",
"usb"
],
flags: [
"-C overflow-checks=y",
],
ld_flags: [
"-Wl,--rpath,\\$$ORIGIN",
"-Wl,--rpath,\\$$ORIGIN/../../lib64",
],
rustlibs: [
"libacpi_tables",
"libarch",
"libassertions",
"libaudio_streams",
"libbase_rust",
"libbit_field",
"libcrosvm",
"libdata_model",
"libdevices",
"libdisk",
"libhypervisor",
"libkernel_cmdline",
"libkernel_loader",
"liblibc",
"liblibcras",
"libminijail_rust",
"libnet_util",
"libp9",
"libresources",
"librutabaga_gfx",
"libserde_json",
"libsync_rust",
"libtempfile",
"libvhost",
"libvhost_user_devices",
"libvm_control",
"libvm_memory",
],
proc_macros: [
"libenumn",
"libremain",
],
}
rust_defaults {
name: "crosvm_defaults_test",
defaults: ["crosvm_defaults"],
crate_name: "crosvm",
srcs: ["src/crosvm.rs"],
test_suites: ["general-tests"],
auto_gen_config: true,
edition: "2018",
arch: {
x86_64: {
rustlibs: ["libx86_64_rust"],
},
arm64: {
rustlibs: ["libaarch64"],
},
},
target: {
linux_glibc_x86_64: {
features: [
"gdb",
"gdbstub",
],
rustlibs: [
"libgdbstub",
"libgdbstub_arch",
"libthiserror",
],
},
},
features: [
"default",
],
rustlibs: [
"libacpi_tables",
"libarch",
"libassertions",
"libbase_rust",
"libbit_field",
"libdata_model",
"libdevices",
"libdisk",
"libhypervisor",
"libkernel_cmdline",
"libkernel_loader",
"liblibc",
"libminijail_rust",
"libnet_util",
"libp9",
"libresources",
"librutabaga_gfx",
"libserde_json",
"libsync_rust",
"libtempfile",
"libvhost",
"libvm_control",
"libvm_memory",
],
proc_macros: [
"libenumn",
"libremain",
],
}
rust_test_host {
name: "crosvm_host_test_src_crosvm",
defaults: ["crosvm_defaults_test"],
features: [
"audio",
],
rustlibs: [
"libaudio_streams",
"liblibcras",
],
test_options: {
unit_test: true,
},
}
rust_test {
name: "crosvm_device_test_src_crosvm",
defaults: ["crosvm_defaults_test"],
features: [
"audio",
],
rustlibs: [
"libaudio_streams",
"liblibcras",
],
}
rust_defaults {
name: "crosvm_defaults_crosvm",
defaults: ["crosvm_defaults"],
crate_name: "crosvm",
srcs: ["src/main.rs"],
test_suites: ["general-tests"],
auto_gen_config: true,
edition: "2018",
arch: {
x86_64: {
rustlibs: ["libx86_64_rust"],
},
arm64: {
rustlibs: ["libaarch64"],
},
},
features: [
"default",
],
rustlibs: [
"libacpi_tables",
"libarch",
"libassertions",
"libaudio_streams",
"libbase_rust",
"libbit_field",
"libcrosvm",
"libdata_model",
"libdevices",
"libdisk",
"libhypervisor",
"libkernel_cmdline",
"libkernel_loader",
"liblibc",
"liblibcras",
"libminijail_rust",
"libnet_util",
"libp9",
"libresources",
"librutabaga_gfx",
"libserde_json",
"libsync_rust",
"libtempfile",
"libvhost",
"libvhost_user_devices",
"libvm_control",
"libvm_memory",
],
proc_macros: [
"libenumn",
"libremain",
],
}
rust_test_host {
name: "crosvm_host_test_src_main",
defaults: ["crosvm_defaults_crosvm"],
features: [
"audio",
],
rustlibs: [
"libaudio_streams",
"liblibcras",
],
test_options: {
unit_test: true,
},
}
rust_test {
name: "crosvm_device_test_src_main",
defaults: ["crosvm_defaults_crosvm"],
}
rust_library {
name: "libcrosvm",
defaults: ["crosvm_defaults"],
host_supported: true,
crate_name: "crosvm",
srcs: ["src/crosvm.rs"],
edition: "2018",
target: {
linux_glibc: {
features: [
"gfxstream",
],
},
linux_glibc_x86_64: {
features: [
"gdb",
"gdbstub",
],
rustlibs: [
"libgdbstub",
"libgdbstub_arch",
"libthiserror",
],
},
},
arch: {
x86_64: {
rustlibs: ["libx86_64_rust"],
},
arm64: {
rustlibs: ["libaarch64"],
},
},
features: [
"audio",
"default",
"gpu",
"usb",
],
rustlibs: [
"libacpi_tables",
"libarch",
"libassertions",
"libaudio_streams",
"libbase_rust",
"libbit_field",
"libdata_model",
"libdevices",
"libdisk",
"libhypervisor",
"libkernel_cmdline",
"libkernel_loader",
"liblibc",
"liblibcras",
"libminijail_rust",
"libnet_util",
"libp9",
"libresources",
"librutabaga_gfx",
"libserde_json",
"libsync_rust",
"libtempfile",
"libvhost",
"libvhost_user_devices",
"libvm_control",
"libvm_memory",
],
proc_macros: [
"libenumn",
"libremain",
],
}