xref: /aosp_15_r20/external/crosvm/tools/chromeos/setup_cargo (revision bb4ee6a4ae7042d18b07a98463b9c8b875e44b39)
1*bb4ee6a4SAndroid Build Coastguard Worker#!/usr/bin/env bash
2*bb4ee6a4SAndroid Build Coastguard Worker# Copyright 2021 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# To build crosvm using cargo against libraries and crates provided by ChromeOS
7*bb4ee6a4SAndroid Build Coastguard Worker# use this script to update path references in Cargo.toml.
8*bb4ee6a4SAndroid Build Coastguard Worker
9*bb4ee6a4SAndroid Build Coastguard Workerset -e
10*bb4ee6a4SAndroid Build Coastguard Worker
11*bb4ee6a4SAndroid Build Coastguard WorkerCARGO_PATH=$(dirname "$0")/../../Cargo.toml
12*bb4ee6a4SAndroid Build Coastguard Worker
13*bb4ee6a4SAndroid Build Coastguard Workerif ! git diff "${CARGO_PATH}"; then
14*bb4ee6a4SAndroid Build Coastguard Worker    echo "There is pending Cargo.toml changes, please clean first."
15*bb4ee6a4SAndroid Build Coastguard Worker    exit 1
16*bb4ee6a4SAndroid Build Coastguard Workerfi
17*bb4ee6a4SAndroid Build Coastguard Worker
18*bb4ee6a4SAndroid Build Coastguard Workerdeclare -A replacements=(
19*bb4ee6a4SAndroid Build Coastguard Worker    ["libcras_stub"]="../../third_party/adhd/cras/client/libcras"
20*bb4ee6a4SAndroid Build Coastguard Worker    ["system_api_stub"]="../../platform2/system_api"
21*bb4ee6a4SAndroid Build Coastguard Worker    ["third_party/minijail"]="../../aosp/external/minijail"
22*bb4ee6a4SAndroid Build Coastguard Worker)
23*bb4ee6a4SAndroid Build Coastguard Worker
24*bb4ee6a4SAndroid Build Coastguard Workerfor crate in "${!replacements[@]}"; do
25*bb4ee6a4SAndroid Build Coastguard Worker    echo "Replacing '${crate}' with '${replacements[$crate]}'"
26*bb4ee6a4SAndroid Build Coastguard Worker    sed -i "s|path = \"${crate}|path = \"${replacements[$crate]}|g" \
27*bb4ee6a4SAndroid Build Coastguard Worker        "${CARGO_PATH}"
28*bb4ee6a4SAndroid Build Coastguard Workerdone
29*bb4ee6a4SAndroid Build Coastguard Worker
30*bb4ee6a4SAndroid Build Coastguard Workergit commit "${CARGO_PATH}" -m 'crosvm: DO NOT SUBMIT: Cargo.toml changes.
31*bb4ee6a4SAndroid Build Coastguard Worker
32*bb4ee6a4SAndroid Build Coastguard WorkerThis is for local cargo {build,test} in your CrOS checkout.
33*bb4ee6a4SAndroid Build Coastguard WorkerPlease do not submit this change.
34*bb4ee6a4SAndroid Build Coastguard Worker
35*bb4ee6a4SAndroid Build Coastguard WorkerBUG=None
36*bb4ee6a4SAndroid Build Coastguard WorkerTEST=None
37*bb4ee6a4SAndroid Build Coastguard Worker
38*bb4ee6a4SAndroid Build Coastguard WorkerCommit: false
39*bb4ee6a4SAndroid Build Coastguard Worker'
40*bb4ee6a4SAndroid Build Coastguard Worker
41*bb4ee6a4SAndroid Build Coastguard Workerecho "Modified Cargo.toml with new paths. Please do not submit the change."
42