58 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env bash
 | |
| 
 | |
| set -eE
 | |
| 
 | |
| function msg {
 | |
|   echo -e "\x1B[1m$*\x1B[0m" >&2
 | |
| }
 | |
| 
 | |
| trap 'msg "\x1B[31mFailed to install dependencies!"' ERR
 | |
| 
 | |
| if which apt-get > /dev/null
 | |
| then
 | |
|   msg "Installing system build dependencies"
 | |
|   sudo apt-get install \
 | |
|     build-essential \
 | |
|     bison \
 | |
|     ccache \
 | |
|     flex \
 | |
|     git-lfs \
 | |
|     gnat \
 | |
|     mtools \
 | |
|     nasm \
 | |
|     uuid-dev \
 | |
|     zlib1g-dev
 | |
| else
 | |
|   msg "Please add support for your distribution to:"
 | |
|   msg "scripts/deps.sh"
 | |
|   exit 1
 | |
| fi
 | |
| 
 | |
| msg "Installing GIT LFS hooks"
 | |
| git lfs install
 | |
| 
 | |
| msg "Downloading GIT LFS artifacts"
 | |
| git lfs pull
 | |
| 
 | |
| msg "Installing Rust"
 | |
| curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \
 | |
|   | sh -s -- -y --default-toolchain nightly
 | |
| 
 | |
| msg "Loading Rust environment"
 | |
| source ~/.cargo/env
 | |
| 
 | |
| msg "Installing pinned Rust toolchain"
 | |
| rustup toolchain install "$(cat rust-toolchain)"
 | |
| 
 | |
| msg "Installing source for pinned Rust toolchain"
 | |
| rustup component add --toolchain "$(cat rust-toolchain)" rust-src
 | |
| 
 | |
| if ! which cargo-xbuild > /dev/null
 | |
| then
 | |
|   msg "Installing cargo-xbuild"
 | |
|   cargo +nightly install cargo-xbuild
 | |
| fi
 | |
| 
 | |
| msg "\x1B[32mSuccessfully installed dependencies"
 | |
| echo "Ready to run ./scripts/build.sh [model]" >&2
 |