1{ 2 "tests": true, 3 "features": [ 4 "android_display", 5 // "android_display_stub" is enabled only to allow the cargo build to succeed as 6 // part of cargo_embargo. Patch files are used to remove it from the 7 // generated Android.bp files (so that the real display backend implementation is 8 // used). 9 "android_display_stub", 10 "android-sparse", 11 "audio", 12 "audio_aaudio", 13 "balloon", 14 "config-file", 15 "fs_runtime_ugid_map", 16 // TODO: The "protos" crate has been modified such that it doesn't work with cargo. If we fix that, 17 // we can remove a some patch files and enable "composite-disk" and "registered_events" here. 18 // "composite-disk", 19 // "registered_events", 20 "gdb", 21 "geniezone", 22 "gfxstream", 23 // "gfxstream_stub" is enabled only to allow the cargo build to succeed as 24 // part of cargo_embargo. Patch files are used to remove it from the 25 // generated Android.bp files (so that the real gfxstream implementation is 26 // used). 27 "gfxstream_stub", 28 "gpu", 29 "gunyah", 30 "libaaudio_stub", 31 "media", 32 "net", 33 "qcow", 34 "usb", 35 "virgl_renderer" 36 ], 37 "workspace": true, 38 "workspace_excludes": [ 39 "audio_streams_conformance_test", 40 "baremetal", 41 "catapult_converter", 42 "cros_asyncv2", 43 "cros_fuzz", 44 "crosvm-fuzz", 45 "crosvm_plugin", 46 "delegate", 47 "e2e_tests", 48 "ffmpeg", 49 "fixture", 50 "gpu_buffer", 51 "libva", 52 "libvda", 53 "p9-fuzz", 54 "prebuilts", 55 "proto_build_tools", 56 "qcow_utils", 57 "rutabaga_gfx_ffi", 58 "sandbox", 59 "swap", 60 "system_api", 61 "tpm2", 62 "tpm2-sys", 63 "tube_transporter", 64 "win_audio", 65 "win_util" 66 ], 67 "global_defaults": "crosvm_defaults", 68 "apex_available": ["com.android.virt"], 69 "product_available": false, 70 "vendor_available": false, 71 "module_name_overrides": { 72 "libbase": "libbase_rust", 73 "libbase64": "libbase64_rust", 74 "libbit_field": "libbit_field_crosvm", 75 "libfuse": "libfuse_rust", 76 "liblog": "liblog_rust", 77 "libminijail": "libminijail_rust", 78 "libsnapshot": "libsnapshot_crosvm", 79 "libsync": "libsync_rust", 80 "libx86_64": "libx86_64_rust" 81 }, 82 "module_blocklist": [ 83 // TODO: These are all for workspace_excludes package. Maybe use the option to 84 // also block all blueprint modules for excluded packages. 85 "libprebuilts", 86 "libproto_build_tools", 87 // Requires ext2 tools in $PATH. We don't use it. 88 "ext2_test_tests_tests", 89 // Flaky with ENOMEM. We don't use io_uring yet, so turning it off for now. 90 "io_uring_test_tests_uring" 91 ], 92 "module_visibility": { 93 "crosvm": [ 94 "//visibility:public" 95 ], 96 "libcrosvm_control_static": [ 97 "//packages/modules/Virtualization/android/virtmgr" 98 ], 99 "libdisk": [ 100 "//packages/modules/Virtualization/android/virtmgr" 101 ], 102 "libfuse_rust": [ 103 "//packages/modules/Virtualization/guest/authfs", 104 "//packages/modules/Virtualization/guest/zipfuse", 105 "//packages/modules/Virtualization/tests/authfs" 106 ] 107 }, 108 "package": { 109 "aarch64": { 110 "add_module_block": "aarch64/cargo2android_arch.bp" 111 }, 112 "android_audio": { 113 "patch": "android_audio/patches/Android.bp.patch" 114 }, 115 "base": { 116 "patch": "base/patches/Android.bp.patch", 117 "dep_blocklist": [ 118 // "libtest_mimic" is needed for "base_test_tests_process" which is 119 // currently ignored by cargo_embargo because it is a "harness-less" 120 // test. cargo_embargo incorrectly thinks the dependency is needed for 121 // other tests in the "process" package, so we need to manually block 122 // it here. 123 "liblibtest_mimic" 124 ] 125 }, 126 "base_event_token_derive": { 127 // TODO: This is a proc macro crate. Should disable device tests by default for them. 128 "device_supported": false 129 }, 130 "bit_field_derive": { 131 // TODO: This is a proc macro crate. Should disable device tests by default for them. 132 "device_supported": false 133 }, 134 "cros_async": { 135 "no_presubmit": true 136 }, 137 "crosvm": { 138 "no_presubmit": true, 139 "add_toplevel_block": "cargo2android_defaults.bp", 140 "add_module_block": "cargo2android_module.bp.patch", 141 // Keep cargo2android from adding ISA specific deps so that we can add them 142 // correctly via patches. 143 "dep_blocklist": [ 144 "libx86_64", 145 "libaarch64" 146 ], 147 "patch": "patches/Android.bp.patch" 148 }, 149 "crosvm_control": { 150 "patch": "crosvm_control/cargo2android.bp.patch" 151 }, 152 "devices": { 153 "no_presubmit": true, 154 "dep_blocklist": [ 155 // See the comment for base's "dep_blocklist" above (in this case 156 // "devices_test_tests_passthroughfs_main" is the culprit). 157 "liblibtest_mimic" 158 ] 159 }, 160 "disk": { 161 "patch": "disk/patches/Android.bp.patch" 162 }, 163 "gpu_display": { 164 "add_toplevel_block": "gpu_display/cargo2android.bp", 165 "patch": "gpu_display/patches/Android.bp.patch" 166 }, 167 "hypervisor": { 168 "no_presubmit": true 169 }, 170 "io_uring": { 171 "no_presubmit": true 172 }, 173 "kvm": { 174 "no_presubmit": true 175 }, 176 "kvm_sys": { 177 "no_presubmit": true 178 }, 179 "net_util": { 180 "no_presubmit": true 181 }, 182 "power_monitor": { 183 "copy_out": true 184 }, 185 "protos": { 186 "add_toplevel_block": "protos/cargo2android_protobuf.bp", 187 "patch": "protos/patches/Android.bp.patch" 188 }, 189 "rutabaga_gfx": { 190 "add_toplevel_block": "rutabaga_gfx/Android.bp.extra", 191 "patch": "rutabaga_gfx/patches/Android.bp.patch", 192 "dep_blocklist": [ 193 "libEGL", 194 "libGL", 195 "libX11", 196 "libXau", 197 "libXdmcp", 198 "libdl", 199 "libdrm", 200 "libgbm", 201 "libm", 202 "libpthread", 203 "libxcb" 204 ] 205 }, 206 "vhost": { 207 "no_presubmit": true 208 }, 209 "wire_format_derive": { 210 // TODO: This is a proc macro crate. Should disable device tests by default for them. 211 "device_supported": false 212 }, 213 "x86_64": { 214 "no_presubmit": true, 215 "add_module_block": "x86_64/cargo2android_gdb.bp.patch" 216 } 217 } 218} 219