fune/taskcluster/scripts/misc/build-cargo-vet.sh
Mike Hommey 49b4329f1c Bug 1788854 - Upgrade MacOS SDK to 11.3. r=firefox-build-system-reviewers,andi
We keep the older 11.0 and 10.11 SDKs for openh264.

Ideally, we'd rename the SDK directory not to contain its version, but
ld64 actually relies on the directory name to figure out the platform
version when it's not given to it, which it's not. We can make clang do
that, but it's rather involved (because it also requires setting up the
host linker properly, which we don't do), so we just go the easy route
and keep the SDK version in its directory.

Differential Revision: https://phabricator.services.mozilla.com/D156279
2022-09-04 21:07:01 +00:00

57 lines
1.8 KiB
Bash
Executable file

#!/bin/bash
set -x -e -v
PROJECT=cargo-vet
# Needed by osx-cross-linker.
export TARGET=$1
case "$TARGET" in
x86_64-unknown-linux-gnu)
# Native Linux Build
EXE=
FEATURES="--features reqwest/native-tls-vendored"
export RUSTFLAGS="-Clinker=$MOZ_FETCHES_DIR/clang/bin/clang++ -C link-arg=--sysroot=$MOZ_FETCHES_DIR/sysroot-x86_64-linux-gnu -C link-arg=-fuse-ld=lld"
export CC=$MOZ_FETCHES_DIR/clang/bin/clang
export CFLAGS="--sysroot=$MOZ_FETCHES_DIR/sysroot-x86_64-linux-gnu"
;;
*-apple-darwin)
# Cross-compiling for Mac on Linux.
EXE=
FEATURES=
export PATH="$MOZ_FETCHES_DIR/clang/bin:$PATH"
export PATH="$MOZ_FETCHES_DIR/cctools/bin:$PATH"
export RUSTFLAGS="-C linker=$GECKO_PATH/taskcluster/scripts/misc/osx-cross-linker"
if test "$TARGET" = "aarch64-apple-darwin"; then
export MACOSX_DEPLOYMENT_TARGET=11.0
else
export MACOSX_DEPLOYMENT_TARGET=10.12
fi
export CC="$MOZ_FETCHES_DIR/clang/bin/clang"
export TARGET_CC="$CC -isysroot $MOZ_FETCHES_DIR/MacOSX11.3.sdk"
;;
x86_64-pc-windows-msvc)
# Cross-compiling for Windows on Linux.
EXE=.exe
FEATURES=
export CC=$MOZ_FETCHES_DIR/clang/bin/clang-cl
export TARGET_AR=$MOZ_FETCHES_DIR/clang/bin/llvm-lib
. $GECKO_PATH/taskcluster/scripts/misc/vs-setup.sh
export CARGO_TARGET_X86_64_PC_WINDOWS_MSVC_LINKER=$MOZ_FETCHES_DIR/clang/bin/lld-link
export LD_PRELOAD=$MOZ_FETCHES_DIR/liblowercase/liblowercase.so
export LOWERCASE_DIRS=$MOZ_FETCHES_DIR/vs
;;
esac
PATH="$MOZ_FETCHES_DIR/rustc/bin:$PATH"
cd $MOZ_FETCHES_DIR/$PROJECT
cargo build --verbose --release --target "$TARGET" --bin $PROJECT $FEATURES
mkdir ${PROJECT}
cp target/$TARGET/release/${PROJECT}${EXE} ${PROJECT}/${PROJECT}${EXE}
tar -acf ${PROJECT}.tar.zst ${PROJECT}
mkdir -p $UPLOAD_DIR
cp ${PROJECT}.tar.zst $UPLOAD_DIR