#!/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 update sudo apt-get install --yes --no-install-recommends \ ca-certificates \ clang \ cloud-image-utils \ curl \ dpkg-dev \ expect \ gcc \ git \ jq \ libasound2-dev \ libavcodec-dev \ libavutil-dev \ libclang-dev \ libdbus-1-dev \ libdrm-dev \ libepoxy-dev \ libglib2.0-dev \ libguestfs-tools \ libslirp-dev \ libssl-dev \ libswscale-dev \ libudev-dev \ libva-dev \ libwayland-dev \ libxext-dev \ make \ mold \ nasm \ ninja-build \ openssh-client \ pkg-config \ python3 \ python3-pip \ python3-setuptools \ qemu-system-x86 \ rsync \ screen \ tmux \ wget \ wine64 \ gcc-mingw-w64-x86-64-win32 \ wayland-protocols pip3 install \ meson \ mdformat \ argh \ mypy \ black 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 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 # The bindgen tool is required to build a crosvm dependency. cargo install -f bindgen --version=0.60.1 # binutils are wrappers to call the rustup bundled versions of llvm tools. cargo install -f cargo-binutils # Install dependencies used to generate mdbook documentation. $(dirname "$0")/install-docs-deps # Install wine related dependencies if this is a local install and not a docker build if [[ -z "${DOCKER_WINE_SETUP}" ]]; then $(dirname "$0")/install-wine-deps fi