1#!/bin/bash 2set -e -v 3 4# This script is for building GN. 5 6WORKSPACE=$HOME/workspace 7COMPRESS_EXT=xz 8 9CROSS_CCTOOLS_PATH=$MOZ_FETCHES_DIR/cctools 10CROSS_SYSROOT=$MOZ_FETCHES_DIR/MacOSX10.12.sdk 11 12export CC=$MOZ_FETCHES_DIR/clang/bin/clang 13export CXX=$MOZ_FETCHES_DIR/clang/bin/clang++ 14export AR=$MOZ_FETCHES_DIR/clang/bin/llvm-ar 15export CFLAGS="-target x86_64-apple-darwin -mlinker-version=137 -B ${CROSS_CCTOOLS_PATH}/bin -isysroot ${CROSS_SYSROOT} -I${CROSS_SYSROOT}/usr/include -iframework ${CROSS_SYSROOT}/System/Library/Frameworks" 16export CXXFLAGS="-stdlib=libc++ ${CFLAGS}" 17export LDFLAGS="${CXXFLAGS} -Wl,-syslibroot,${CROSS_SYSROOT} -Wl,-dead_strip" 18 19# We patch tools/gn/bootstrap/bootstrap.py to detect this. 20export MAC_CROSS=1 21 22# Gn build scripts use #!/usr/bin/env python, which will be python 2.6 on 23# the worker and cause failures. Work around this by putting python2.7 24# ahead of it in PATH. 25mkdir -p $WORKSPACE/python_bin 26ln -s /usr/bin/python2.7 $WORKSPACE/python_bin/python 27export PATH=$WORKSPACE/python_bin:$PATH 28 29cd $GECKO_PATH 30 31# The ninja templates used to bootstrap gn have hard-coded references to 32# 'libtool', make sure we find the right one. 33ln -s $CROSS_CCTOOLS_PATH/bin/x86_64-apple-darwin-libtool $CROSS_CCTOOLS_PATH/bin/libtool 34export PATH=$CROSS_CCTOOLS_PATH/bin:$PATH 35 36. taskcluster/scripts/misc/build-gn-common.sh 37