rustup update

# Components
rustup component add rust-src rustfmt-preview rust-analysis

cargo install cargo-count
cargo install cargo-deps
cargo install cargo-lipo
cargo install cargo-outdated
cargo install cargo-release
cargo install cargo-update
cargo install cargo-watch
cargo install cbindgen
cargo install clippy
cargo install cross
cargo install rustfmt

# Apple
rustup target add aarch64-apple-ios armv7-apple-ios armv7s-apple-ios x86_64-apple-ios i386-apple-ios

# Linux
rustup target add x86_64-unknown-linux-musl

# Windows
rustup target add x86_64-pc-windows-gnu

# Cross
brew install FiloSottile/musl-cross/musl-cross --with-arm-hf --with-i486 --with-aarch64 --with-arm --with-mips

brew install mingw-w64
cp /usr/local/Cellar/mingw-w64/6.0.0_2/toolchain-x86_64/x86_64-w64-mingw32/lib/{crt2.o,dllcrt2.o,libmsvcrt.a} ~/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-pc-windows-gnu/lib/

# ~/.cargo/config
[target.x86_64-unknown-linux-musl]
linker = "x86_64-linux-musl-gcc"

[target.x86_64-pc-windows-gnu]
linker = 'x86_64-w64-mingw32-gcc'
