mirror of
https://chromium.googlesource.com/crosvm/crosvm
synced 2024-11-28 09:33:01 +00:00
fb512a85b2
This allows cargo to build for android. A new dev container is built to include this. To allow us to build the new container, we had to remove the ffmpeg dependencies for armhf which fail to install in the current version of debian. BUG=b:349907813 TEST=dev_container presubmit clippy_android Change-Id: I7fbcd460e53fbd339a28b451a91b0722d34257b8 Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5689659 Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Commit-Queue: Dennis Kempin <denniskempin@google.com>
103 lines
2.9 KiB
Bash
Executable file
103 lines
2.9 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# Copyright 2021 The ChromiumOS Authors
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
set -ex
|
|
|
|
sudo apt-get install --yes --no-install-recommends \
|
|
black \
|
|
ca-certificates \
|
|
clang \
|
|
cloud-image-utils \
|
|
curl \
|
|
dpkg-dev \
|
|
expect \
|
|
g++ \
|
|
gcc \
|
|
git \
|
|
jq \
|
|
libavcodec-dev \
|
|
libavutil-dev \
|
|
libcap-dev \
|
|
libclang-dev \
|
|
libdbus-1-dev \
|
|
libdrm-dev \
|
|
libepoxy-dev \
|
|
libglib2.0-dev \
|
|
libguestfs-tools \
|
|
libslirp-dev \
|
|
libssl-dev \
|
|
libswscale-dev \
|
|
libva-dev \
|
|
libwayland-dev \
|
|
libxext-dev \
|
|
lld \
|
|
make \
|
|
meson \
|
|
mypy \
|
|
nasm \
|
|
ncat \
|
|
ninja-build \
|
|
openssh-client \
|
|
pipx \
|
|
pkg-config \
|
|
protobuf-compiler \
|
|
python3 \
|
|
python3-argh \
|
|
python3-pip \
|
|
python3-rich \
|
|
qemu-system-x86 \
|
|
rsync \
|
|
screen \
|
|
strace \
|
|
tmux \
|
|
wayland-protocols \
|
|
wget
|
|
|
|
# mdformat is not available as a debian package. Install via pipx instead.
|
|
pipx install mdformat
|
|
pipx inject mdformat mdformat-gfm mdformat-footnote
|
|
pipx ensurepath
|
|
|
|
# Install rustup if not available yet
|
|
if ! command -v rustup &>/dev/null; then
|
|
wget "https://static.rust-lang.org/rustup/archive/1.25.1/x86_64-unknown-linux-gnu/rustup-init"
|
|
echo "5cc9ffd1026e82e7fb2eec2121ad71f4b0f044e88bca39207b3f6b769aaa799c *rustup-init" | sha256sum -c -
|
|
chmod +x rustup-init
|
|
./rustup-init -y --no-modify-path --profile minimal --default-toolchain none
|
|
source ${CARGO_HOME:-~/.cargo}/env
|
|
rm rustup-init
|
|
fi
|
|
|
|
# Install required rust components.
|
|
# This will also ensure the toolchain required by ./rust-toolchain is installed.
|
|
rustup component add cargo clippy rustfmt
|
|
|
|
# LLVM tools are used to generate and process coverage files
|
|
rustup component add llvm-tools-preview
|
|
|
|
# Allow cross-compilation via mingw64
|
|
rustup target add x86_64-pc-windows-gnu
|
|
|
|
# Allow cross-compilation for android
|
|
rustup target add aarch64-linux-android
|
|
|
|
# Install nightly toolchain. Only used for rustfmt
|
|
rustup toolchain install nightly --profile minimal --component rustfmt
|
|
|
|
# Cargo extension to install binary packages from github
|
|
curl -L https://github.com/cargo-bins/cargo-binstall/releases/download/v1.4.4/cargo-binstall-x86_64-unknown-linux-gnu.tgz | tar -xzvvf - -C ${CARGO_HOME:-~/.cargo}/bin
|
|
|
|
# The bindgen tool is required to build a crosvm dependency.
|
|
cargo binstall --no-confirm bindgen-cli --version "0.68.1"
|
|
|
|
# binutils are wrappers to call the rustup bundled versions of llvm tools.
|
|
cargo binstall --no-confirm cargo-binutils
|
|
|
|
# The mdbook and mdbook-mermaid tools are used to build the crosvm book.
|
|
cargo binstall --no-confirm mdbook --version "0.4.25"
|
|
cargo binstall --no-confirm mdbook-mermaid --version "0.12.6"
|
|
cargo binstall --no-confirm mdbook-linkcheck --version "0.7.7"
|
|
|
|
# Nextest is an improved test runner for cargo
|
|
cargo binstall --no-confirm cargo-nextest --version "0.9.49"
|