1package {
2    default_applicable_licenses: ["Android-Apache-2.0"],
3}
4
5rust_defaults {
6    name: "virtualizationmanager_defaults",
7    crate_name: "virtualizationmanager",
8    defaults: [
9        "avf_build_flags_rust",
10        "secretkeeper_use_latest_hal_aidl_rust",
11        "authgraph_use_latest_hal_aidl_rust",
12    ],
13    edition: "2021",
14    // Only build on targets which crosvm builds on.
15    enabled: false,
16    target: {
17        android64: {
18            compile_multilib: "64",
19            enabled: true,
20        },
21        linux_bionic_arm64: {
22            enabled: true,
23        },
24    },
25    prefer_rlib: true,
26    rustlibs: [
27        "android.system.virtualizationcommon-rust",
28        "android.system.virtualizationservice-rust",
29        "android.system.virtualizationservice_internal-rust",
30        "android.system.virtualmachineservice-rust",
31        "android.os.permissions_aidl-rust",
32        "libandroid_logger",
33        "libanyhow",
34        "libapkverify",
35        "libavf_features",
36        "libavflog",
37        "libbinder_rs",
38        "libcfg_if",
39        "libclap",
40        "libcrosvm_control_static",
41        "libcstr",
42        "libcommand_fds",
43        "libdisk",
44        "libglob",
45        "libhex",
46        "libhypervisor_props",
47        "liblibc",
48        "liblog_rust",
49        "libmicrodroid_metadata",
50        "libmicrodroid_payload_config",
51        "libnested_virt",
52        "libnix",
53        "libonce_cell",
54        "libregex",
55        "librpcbinder_rs",
56        "librustutils",
57        "libsemver",
58        "libselinux_bindgen",
59        "libserde",
60        "libserde_json",
61        "libserde_xml_rs",
62        "libshared_child",
63        "libstatslog_virtualization_rust",
64        "libtombstoned_client_rust",
65        "libvbmeta_rust",
66        "libvmconfig",
67        "libzip",
68        "libvsock",
69        "liblibfdt",
70        "libfsfdt",
71        "libhypervisor_props",
72        "libzerocopy",
73        "libuuid",
74        // TODO(b/202115393) stabilize the interface
75        "packagemanager_aidl-rust",
76    ],
77    shared_libs: [
78        "libselinux",
79    ],
80}
81
82rust_binary {
83    name: "virtmgr",
84    defaults: ["virtualizationmanager_defaults"],
85    srcs: ["src/main.rs"],
86    apex_available: ["com.android.virt"],
87}
88
89rust_binary {
90    name: "early_virtmgr",
91    defaults: ["virtualizationmanager_defaults"],
92    srcs: ["src/main.rs"],
93    cfgs: ["early"],
94    apex_available: ["com.android.virt"],
95}
96
97xsd_config {
98    name: "early_vms",
99    srcs: ["early_vms.xsd"],
100    api_dir: "schema",
101    package_name: "android.system.virtualizationservice",
102}
103
104rust_test {
105    name: "virtualizationmanager_device_test",
106    srcs: ["src/main.rs"],
107    defaults: ["virtualizationmanager_defaults"],
108    rustlibs: [
109        "libtempfile",
110    ],
111    data: [
112        ":test_avf_debug_policy_with_ramdump",
113        ":test_avf_debug_policy_without_ramdump",
114        ":test_avf_debug_policy_with_adb",
115        ":test_avf_debug_policy_without_adb",
116    ],
117    test_suites: ["general-tests"],
118}
119
120cc_fuzz {
121    name: "virtualizationmanager_fuzzer",
122    defaults: ["service_fuzzer_defaults"],
123    srcs: ["fuzzer.cpp"],
124    static_libs: [
125        "android.system.virtualizationservice-ndk",
126        "libbase",
127    ],
128    shared_libs: [
129        "libbinder_ndk",
130        "libbinder_rpc_unstable",
131        "liblog",
132    ],
133    fuzz_config: {
134        cc: ["[email protected]"],
135    },
136}
137