gecko-dev/taskcluster/scripts/misc/build-gn-macosx.sh
Mike Hommey 8d9ccce339 Bug 1528150 - Build gn from https://gn.googlesource.com/gn/. r=froydnj
Make some adjustments to make the build work:
- On Linux, a newer GCC is needed, and -lrt is missing for
  clock_gettime.
- On Mac, ninja expect AR be accept ar arguments, which clang doesn't,
  so use llvm-ar.
- On Windows, remove the /WX flag that upstream sets (warnings as
  errors) because there _are_ warnings in the code, and remove the
  explicit /MACHINE:x64 linker flag because we're building for x86.
  (we could build for x64, but I'd rather leave that to a followup)

Differential Revision: https://phabricator.services.mozilla.com/D19911
2019-02-16 07:22:36 +09:00

40 lines
1.5 KiB
Bash
Executable file

#!/bin/bash
set -e -v
# This script is for building GN.
WORKSPACE=$HOME/workspace
UPLOAD_DIR=$HOME/artifacts
COMPRESS_EXT=xz
CROSS_CCTOOLS_PATH=$WORKSPACE/build/src/cctools
CROSS_SYSROOT=$WORKSPACE/build/src/MacOSX10.11.sdk
export LD_LIBRARY_PATH=$WORKSPACE/build/src/clang/lib
export CC=$WORKSPACE/build/src/clang/bin/clang
export CXX=$WORKSPACE/build/src/clang/bin/clang++
export AR=$WORKSPACE/build/src/clang/bin/llvm-ar
export CFLAGS="-target x86_64-darwin11 -mlinker-version=137 -B ${CROSS_CCTOOLS_PATH}/bin -isysroot ${CROSS_SYSROOT} -I${CROSS_SYSROOT}/usr/include -iframework ${CROSS_SYSROOT}/System/Library/Frameworks"
export CXXFLAGS="-stdlib=libc++ ${CFLAGS}"
export LDFLAGS="${CXXFLAGS} -Wl,-syslibroot,${CROSS_SYSROOT} -Wl,-dead_strip"
# We patch tools/gn/bootstrap/bootstrap.py to detect this.
export MAC_CROSS=1
# Gn build scripts use #!/usr/bin/env python, which will be python 2.6 on
# the worker and cause failures. Work around this by putting python2.7
# ahead of it in PATH.
mkdir -p $WORKSPACE/python_bin
ln -s /usr/bin/python2.7 $WORKSPACE/python_bin/python
export PATH=$WORKSPACE/python_bin:$PATH
cd $WORKSPACE/build/src
. taskcluster/scripts/misc/tooltool-download.sh
# The ninja templates used to bootstrap gn have hard-coded references to
# 'libtool', make sure we find the right one.
ln -s $CROSS_CCTOOLS_PATH/bin/x86_64-darwin11-libtool $CROSS_CCTOOLS_PATH/bin/libtool
export PATH=$CROSS_CCTOOLS_PATH/bin:$PATH
. taskcluster/scripts/misc/build-gn-common.sh