4 artifact
=$
(basename "$TOOLCHAIN_ARTIFACT")
5 project
=${artifact%.tar.*}
6 workspace
=$HOME/workspace
8 # Exported for osx-cross-linker.
15 x86_64-unknown-linux-gnu
)
17 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"
18 export CC
=$MOZ_FETCHES_DIR/clang
/bin
/clang
19 export CXX
=$MOZ_FETCHES_DIR/clang
/bin
/clang
++
20 export TARGET_CFLAGS
="--sysroot=$MOZ_FETCHES_DIR/sysroot-x86_64-linux-gnu"
21 export TARGET_CXXFLAGS
="-D_GLIBCXX_USE_CXX11_ABI=0 --sysroot=$MOZ_FETCHES_DIR/sysroot-x86_64-linux-gnu"
24 # Cross-compiling for Mac on Linux.
25 export PATH
="$MOZ_FETCHES_DIR/clang/bin:$PATH"
26 export RUSTFLAGS
="-C linker=$GECKO_PATH/taskcluster/scripts/misc/osx-cross-linker"
27 if test "$TARGET" = "aarch64-apple-darwin"; then
28 export MACOSX_DEPLOYMENT_TARGET
=11.0
30 export MACOSX_DEPLOYMENT_TARGET
=10.12
32 export CC
="$MOZ_FETCHES_DIR/clang/bin/clang"
33 export CXX
="$MOZ_FETCHES_DIR/clang/bin/clang++"
34 export TARGET_CFLAGS
="-isysroot $MOZ_FETCHES_DIR/MacOSX14.4.sdk"
35 export TARGET_CXXFLAGS
="-isysroot $MOZ_FETCHES_DIR/MacOSX14.4.sdk -stdlib=libc++"
38 # Cross-compiling for Windows on Linux.
39 export CC
=$MOZ_FETCHES_DIR/clang
/bin
/clang-cl
40 export CXX
=$MOZ_FETCHES_DIR/clang
/bin
/clang-cl
41 export TARGET_AR
=$MOZ_FETCHES_DIR/clang
/bin
/llvm-lib
43 .
$GECKO_PATH/taskcluster
/scripts
/misc
/vs-setup.sh
44 export CARGO_TARGET_I686_PC_WINDOWS_MSVC_LINKER
=$MOZ_FETCHES_DIR/clang
/bin
/lld-link
45 export CARGO_TARGET_X86_64_PC_WINDOWS_MSVC_LINKER
=$MOZ_FETCHES_DIR/clang
/bin
/lld-link
46 export TARGET_CFLAGS
="-Xclang -ivfsoverlay -Xclang $MOZ_FETCHES_DIR/vs/overlay.yaml"
47 export TARGET_CXXFLAGS
="-Xclang -ivfsoverlay -Xclang $MOZ_FETCHES_DIR/vs/overlay.yaml"
51 PATH
="$MOZ_FETCHES_DIR/rustc/bin:$PATH"
53 CRATE_PATH
=$MOZ_FETCHES_DIR/${FETCH-$project}
54 WORKSPACE_ROOT
=$
(cd $CRATE_PATH; cargo metadata
--format-version 1 --no-deps --locked 2> /dev
/null | jq
-r .workspace_root
)
56 if test ! -f $WORKSPACE_ROOT/Cargo.lock
; then
57 CARGO_LOCK
=taskcluster
/scripts
/misc
/$project-Cargo.lock
58 if test -f $GECKO_PATH/$CARGO_LOCK; then
59 cp $GECKO_PATH/$CARGO_LOCK $WORKSPACE_ROOT/Cargo.lock
61 echo "Missing Cargo.lock for the crate. Please provide one in $CARGO_LOCK" >&2
70 --target-dir $workspace/obj \
71 --root $workspace/out \
73 ${FEATURES:+--features "$FEATURES"}
75 mkdir
$workspace/$project
76 mv $workspace/out
/bin
/* $workspace/$project
77 tar -C $workspace -acvf $project.
tar.zst
$project
79 mv $project.
tar.zst
$UPLOAD_DIR