steps: | |
- bash: | | |
set -ex | |
toolchain=$TOOLCHAIN | |
if [ "$toolchain" = "" ]; then | |
toolchain=nightly | |
fi | |
if command -v rustup; then | |
rustup update $toolchain | |
rustup default $toolchain | |
else | |
curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain $toolchain | |
echo "##vso[task.prependpath]$HOME/.cargo/bin" | |
fi | |
displayName: Install rust (unix) | |
condition: ne( variables['Agent.OS'], 'Windows_NT' ) | |
- script: | | |
@echo on | |
if not defined TOOLCHAIN set TOOLCHAIN=nightly | |
rustup update %TOOLCHAIN%-%TARGET% | |
rustup default %TOOLCHAIN%-%TARGET% | |
displayName: Install rust (windows) | |
condition: eq( variables['Agent.OS'], 'Windows_NT' ) | |
- script: | | |
set -ex | |
if [ -n "${TARGET}" ] && [ "${TARGET}" != "x86_64-unknown-linux-gnu-emulated" ]; then | |
rustup target add $TARGET | |
fi | |
condition: ne( variables['Agent.OS'], 'Windows_NT' ) | |
displayName: Install target (unix) | |
- script: | | |
@echo on | |
if defined TARGET rustup target add %TARGET% | |
condition: eq( variables['Agent.OS'], 'Windows_NT' ) | |
displayName: Install target (windows) | |
- script: | | |
@echo on | |
if "%ARCH%" == "i686" choco install mingw --x86 --force | |
condition: eq( variables['Agent.OS'], 'Windows_NT' ) | |
displayName: Install MinGW32 (windows) | |
- bash: | | |
set -ex | |
gcc -print-search-dirs | |
find "C:\ProgramData\Chocolatey" -name "crt2*" | |
find "C:\ProgramData\Chocolatey" -name "dllcrt2*" | |
find "C:\ProgramData\Chocolatey" -name "libmsvcrt*" | |
condition: eq( variables['Agent.OS'], 'Windows_NT' ) | |
displayName: Find GCC libraries (windows) | |
- bash: | | |
set -ex | |
if [[ -n ${ARCH_BITS} ]]; then | |
for i in crt2.o dllcrt2.o libmsvcrt.a ; do | |
cp -f "/C/ProgramData/Chocolatey/lib/mingw/tools/install/mingw${ARCH_BITS}/${ARCH}-w64-mingw32/lib/$i" "`rustc --print sysroot`/lib/rustlib/${TARGET}/lib" | |
done | |
fi | |
condition: eq( variables['Agent.OS'], 'Windows_NT' ) | |
displayName: Fix MinGW (windows) | |
- bash: | | |
set -ex | |
rustc -Vv | |
cargo -V | |
rustup -Vv | |
rustup show | |
which rustc | |
which cargo | |
which rustup | |
displayName: Query rust and cargo versions | |
- script: | | |
@echo on | |
where gcc | |
condition: eq( variables['Agent.OS'], 'Windows_NT' ) | |
displayName: Query gcc path | |
- bash: | | |
set -ex | |
cargo generate-lockfile | |
displayName: Generate lockfiles |