build-clang.sh (1862B)
1 #!/bin/bash 2 set -x -e -v 3 4 # This script is for building clang. 5 6 ORIGPWD="$PWD" 7 CONFIGS=$(for c; do echo -n " -c $GECKO_PATH/$c"; done) 8 9 cd $GECKO_PATH 10 11 if [ -d "$MOZ_FETCHES_DIR/binutils/bin" ]; then 12 export PATH="$MOZ_FETCHES_DIR/binutils/bin:$PATH" 13 fi 14 15 # Make the installed compiler-rt(s) available to clang. 16 UPLOAD_DIR= taskcluster/scripts/misc/repack-clang.sh 17 18 case "$CONFIGS" in 19 *macosx64*) 20 # cmake makes decisions based on the output of the mac-only sw_vers, which is 21 # obviously missing when cross-compiling, so create a fake one. The exact 22 # version doesn't really matter: as of writing, cmake checks at most for 10.5. 23 mkdir -p $ORIGPWD/bin 24 echo "#!/bin/sh" > $ORIGPWD/bin/sw_vers 25 echo echo 10.15 >> $ORIGPWD/bin/sw_vers 26 chmod +x $ORIGPWD/bin/sw_vers 27 # these variables are used in build-clang.py 28 export OSX_SYSROOT=$(ls -d $MOZ_FETCHES_DIR/MacOSX*.sdk) 29 export PATH=$PATH:$ORIGPWD/bin 30 ;; 31 *win64*) 32 case "$(uname -s)" in 33 MINGW*|MSYS*) 34 export UPLOAD_DIR=$ORIGPWD/public/build 35 # Set up all the Visual Studio paths. 36 . taskcluster/scripts/misc/vs-setup.sh 37 38 # LLVM_ENABLE_DIA_SDK is set if the directory "$ENV{VSINSTALLDIR}DIA SDK" 39 # exists. 40 export VSINSTALLDIR="${VSPATH}/" 41 ;; 42 *) 43 export VSINSTALLDIR="$MOZ_FETCHES_DIR/vs" 44 ;; 45 esac 46 ;; 47 esac 48 49 if test -d "$MOZ_FETCHES_DIR/cmake"; then 50 export PATH="$(cd $MOZ_FETCHES_DIR/cmake && pwd)/bin:${PATH}" 51 fi 52 if test -d "$MOZ_FETCHES_DIR/ninja"; then 53 export PATH="$(cd $MOZ_FETCHES_DIR/ninja && pwd)/bin:${PATH}" 54 fi 55 56 # gets a bit too verbose here 57 set +x 58 59 cd $MOZ_FETCHES_DIR/llvm-project 60 python3 $GECKO_PATH/build/build-clang/build-clang.py $CONFIGS 61 62 set -x 63 64 if [ -f clang*.tar.zst ]; then 65 # Put a tarball in the artifacts dir 66 mkdir -p $UPLOAD_DIR 67 cp clang*.tar.zst $UPLOAD_DIR 68 fi 69 70 . $GECKO_PATH/taskcluster/scripts/misc/vs-cleanup.sh