xref: /aosp_15_r20/external/crosvm/cargo_embargo.json (revision bb4ee6a4ae7042d18b07a98463b9c8b875e44b39)
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    "net",
32    "qcow",
33    "usb",
34    "virgl_renderer"
35  ],
36  "workspace": true,
37  "workspace_excludes": [
38    "audio_streams_conformance_test",
39    "baremetal",
40    "catapult_converter",
41    "cros_asyncv2",
42    "cros_fuzz",
43    "crosvm-fuzz",
44    "crosvm_plugin",
45    "delegate",
46    "e2e_tests",
47    "ffmpeg",
48    "fixture",
49    "gpu_buffer",
50    "libva",
51    "libvda",
52    "p9-fuzz",
53    "prebuilts",
54    "proto_build_tools",
55    "qcow_utils",
56    "rutabaga_gfx_ffi",
57    "sandbox",
58    "swap",
59    "system_api",
60    "tpm2",
61    "tpm2-sys",
62    "tube_transporter",
63    "win_audio",
64    "win_util"
65  ],
66  "global_defaults": "crosvm_inner_defaults",
67  "apex_available": [],
68  "product_available": false,
69  "vendor_available": false,
70  "module_name_overrides": {
71    "libbase": "libbase_rust",
72    "libbase64": "libbase64_rust",
73    "libbit_field": "libbit_field_crosvm",
74    "libfuse": "libfuse_rust",
75    "liblog": "liblog_rust",
76    "libminijail": "libminijail_rust",
77    "libsync": "libsync_rust",
78    "libx86_64": "libx86_64_rust"
79  },
80  "module_blocklist": [
81    // TODO: These are all for workspace_excludes package. Maybe use the option to
82    // also block all blueprint modules for excluded packages.
83    "libprebuilts",
84    "libproto_build_tools",
85    // Flaky with ENOMEM. We don't use io_uring yet, so turning it off for now.
86    "io_uring_test_tests_uring"
87  ],
88  "module_visibility": {
89    "crosvm": [
90      "//visibility:public"
91    ],
92    "libaarch64": [
93      // For QCOM's crosvm fork.
94      "//vendor:__subpackages__"
95    ],
96    "libbase_rust": [
97      // For QCOM's crosvm fork.
98      "//vendor:__subpackages__"
99    ],
100    "libcrosvm_control_static": [
101      "//packages/modules/Virtualization/android/virtmgr"
102    ],
103    "libdevices": [
104      // For QCOM's crosvm fork.
105      "//vendor:__subpackages__"
106    ],
107    "libdisk": [
108      "//packages/modules/Virtualization/android/virtmgr",
109      // For QCOM's crosvm fork.
110      "//vendor:__subpackages__"
111    ],
112    "libfuse_rust": [
113        "//packages/modules/Virtualization/guest/authfs",
114        "//packages/modules/Virtualization/guest/zipfuse",
115        "//packages/modules/Virtualization/tests/authfs"
116    ],
117    "libhypervisor": [
118      // For QCOM's crosvm fork.
119      "//vendor:__subpackages__"
120    ],
121    "libsync_rust": [
122      // For QCOM's crosvm fork.
123      "//vendor:__subpackages__"
124    ],
125    "libvm_memory": [
126      // For QCOM's crosvm fork.
127      "//vendor:__subpackages__"
128    ]
129  },
130  "package": {
131    "aarch64": {
132      "add_module_block": "aarch64/cargo2android_arch.bp"
133    },
134    "android_audio": {
135      "patch": "android_audio/patches/Android.bp.patch"
136    },
137    "base": {
138      "patch": "base/patches/Android.bp.patch",
139      "dep_blocklist": [
140        // "libtest_mimic" is needed for "base_test_tests_process" which is
141        // currently ignored by cargo_embargo because it is a "harness-less"
142        // test. cargo_embargo incorrectly thinks the dependency is needed for
143        // other tests in the "process" package, so we need to manually block
144        // it here.
145        "liblibtest_mimic"
146      ]
147    },
148    "base_event_token_derive": {
149      // TODO: This is a proc macro crate. Should disable device tests by default for them.
150      "device_supported": false
151    },
152    "bit_field_derive": {
153      // TODO: This is a proc macro crate. Should disable device tests by default for them.
154      "device_supported": false
155    },
156    "cros_async": {
157      "no_presubmit": true
158    },
159    "crosvm": {
160      "no_presubmit": true,
161      "add_toplevel_block": "cargo2android_defaults.bp",
162      "add_module_block": "cargo2android_module.bp.patch",
163      // Keep cargo2android from adding ISA specific deps so that we can add them
164      // correctly via patches.
165      "dep_blocklist": [
166        "libx86_64",
167        "libaarch64"
168      ],
169      "patch": "patches/Android.bp.patch"
170    },
171    "crosvm_control": {
172      "patch": "crosvm_control/cargo2android.bp.patch"
173    },
174    "devices": {
175      "no_presubmit": true,
176      "dep_blocklist": [
177        // See the comment for base's "dep_blocklist" above (in this case
178        // "devices_test_tests_passthroughfs_main" is the culprit).
179        "liblibtest_mimic"
180      ]
181    },
182    "disk": {
183      "patch": "disk/patches/Android.bp.patch"
184    },
185    "gpu_display": {
186      "add_toplevel_block": "gpu_display/cargo2android.bp",
187      "patch": "gpu_display/patches/Android.bp.patch"
188    },
189    "hypervisor": {
190      "no_presubmit": true
191    },
192    "io_uring": {
193      "no_presubmit": true
194    },
195    "kvm": {
196      "no_presubmit": true
197    },
198    "kvm_sys": {
199      "no_presubmit": true
200    },
201    "net_util": {
202      "no_presubmit": true
203    },
204    "power_monitor": {
205      "copy_out": true
206    },
207    "protos": {
208      "add_toplevel_block": "protos/cargo2android_protobuf.bp",
209      "patch": "protos/patches/Android.bp.patch"
210    },
211    "rutabaga_gfx": {
212      "patch": "rutabaga_gfx/patches/Android.bp.patch",
213      "dep_blocklist": [
214        "libEGL",
215        "libGL",
216        "libX11",
217        "libXau",
218        "libXdmcp",
219        "libdl",
220        "libm",
221        "libpthread",
222        "libxcb"
223      ]
224    },
225    "vhost": {
226      "no_presubmit": true
227    },
228    "wire_format_derive": {
229      // TODO: This is a proc macro crate. Should disable device tests by default for them.
230      "device_supported": false
231    },
232    "x86_64": {
233      "no_presubmit": true,
234      "add_module_block": "x86_64/cargo2android_gdb.bp.patch"
235    }
236  }
237}
238