xref: /aosp_15_r20/external/crosvm/tools/bindgen-all-the-things (revision bb4ee6a4ae7042d18b07a98463b9c8b875e44b39)
1*bb4ee6a4SAndroid Build Coastguard Worker#!/usr/bin/env bash
2*bb4ee6a4SAndroid Build Coastguard Worker# Copyright 2022 The ChromiumOS Authors
3*bb4ee6a4SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
4*bb4ee6a4SAndroid Build Coastguard Worker# found in the LICENSE file.
5*bb4ee6a4SAndroid Build Coastguard Worker#
6*bb4ee6a4SAndroid Build Coastguard Worker# Regenerate all bindgen-generated Rust bindings in the crosvm tree.
7*bb4ee6a4SAndroid Build Coastguard Worker#
8*bb4ee6a4SAndroid Build Coastguard Worker# This script expects to be executed from a full ChromeOS checkout so it has access to the kernel
9*bb4ee6a4SAndroid Build Coastguard Worker# and other repositories. Note that it must be run from OUTSIDE the chroot.
10*bb4ee6a4SAndroid Build Coastguard Worker
11*bb4ee6a4SAndroid Build Coastguard Workerset -e
12*bb4ee6a4SAndroid Build Coastguard Workercd "$(dirname "${BASH_SOURCE[0]}")/.."
13*bb4ee6a4SAndroid Build Coastguard Worker
14*bb4ee6a4SAndroid Build Coastguard Workersource tools/impl/bindgen-common.sh
15*bb4ee6a4SAndroid Build Coastguard Worker
16*bb4ee6a4SAndroid Build Coastguard Workerdie() {
17*bb4ee6a4SAndroid Build Coastguard Worker    echo "$@"
18*bb4ee6a4SAndroid Build Coastguard Worker    exit 1
19*bb4ee6a4SAndroid Build Coastguard Worker}
20*bb4ee6a4SAndroid Build Coastguard Worker
21*bb4ee6a4SAndroid Build Coastguard Workerdirs=(
22*bb4ee6a4SAndroid Build Coastguard Worker    io_uring
23*bb4ee6a4SAndroid Build Coastguard Worker    kernel_loader
24*bb4ee6a4SAndroid Build Coastguard Worker    kvm_sys
25*bb4ee6a4SAndroid Build Coastguard Worker    media/libvda
26*bb4ee6a4SAndroid Build Coastguard Worker    net_sys
27*bb4ee6a4SAndroid Build Coastguard Worker    vfio_sys
28*bb4ee6a4SAndroid Build Coastguard Worker    virtio_sys
29*bb4ee6a4SAndroid Build Coastguard Worker    vm_memory
30*bb4ee6a4SAndroid Build Coastguard Worker)
31*bb4ee6a4SAndroid Build Coastguard Worker
32*bb4ee6a4SAndroid Build Coastguard Workerfor d in "${dirs[@]}"; do
33*bb4ee6a4SAndroid Build Coastguard Worker    echo "bindgen ${d}"
34*bb4ee6a4SAndroid Build Coastguard Worker    "${d}"/bindgen.sh || die "Failed to generate bindings for ${d}"
35*bb4ee6a4SAndroid Build Coastguard Workerdone
36*bb4ee6a4SAndroid Build Coastguard Worker
37*bb4ee6a4SAndroid Build Coastguard Workerecho "Done!"
38