зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1386782 - Add toolchain tasks to build gn in automation. r=ted
MozReview-Commit-ID: 7dDwsQJnzRL --HG-- extra : rebase_source : be14a5af5648ae0cc0e571ca098307a4d84a7c14
This commit is contained in:
Родитель
48d2ce9436
Коммит
696a8e5320
|
@ -0,0 +1,26 @@
|
|||
[
|
||||
{
|
||||
"version": "Visual Studio 2015 Update 3 14.0.25425.01 / SDK 10.0.14393.0",
|
||||
"size": 326656969,
|
||||
"digest": "babc414ffc0457d27f5a1ed24a8e4873afbe2f1c1a4075469a27c005e1babc3b2a788f643f825efedff95b79686664c67ec4340ed535487168a3482e68559bc7",
|
||||
"algorithm": "sha512",
|
||||
"filename": "vs2015u3.zip",
|
||||
"unpack": true
|
||||
},
|
||||
{
|
||||
"version": "Ninja 1.7.1",
|
||||
"size": 184821,
|
||||
"digest": "e4f9a1ae624a2630e75264ba37d396d9c7407d6e6aea3763056210ba6e1387908bd31cf4037a6a3661a418e86c4d2761e0c333e6a3bd0d66549d2b0d72d3f43b",
|
||||
"algorithm": "sha512",
|
||||
"filename": "ninja171.zip",
|
||||
"unpack": true
|
||||
},
|
||||
{
|
||||
"version": "MinGit-2.13.3-64-bit",
|
||||
"size": 21482885,
|
||||
"digest": "929bb3c07be8487ee519422a312bdbfeec8f4db4b62c49d02f9aad9fd2a66c0ee5fad63d2b06c8744c336dc9d50446fa4457897333ad17ffd783ecabd1e2ddbb",
|
||||
"algorithm": "sha512",
|
||||
"filename": "git.zip",
|
||||
"unpack": true
|
||||
}
|
||||
]
|
|
@ -206,3 +206,25 @@ linux64-sccache:
|
|||
toolchain-artifact: public/build/sccache2.tar.xz
|
||||
toolchains:
|
||||
- linux64-clang-3.9
|
||||
|
||||
linux64-gn:
|
||||
description: "gn toolchain build"
|
||||
treeherder:
|
||||
kind: build
|
||||
platform: toolchains/opt
|
||||
symbol: TL(gn)
|
||||
tier: 1
|
||||
worker-type: aws-provisioner-v1/gecko-{level}-b-linux
|
||||
worker:
|
||||
docker-image: {in-tree: desktop-build}
|
||||
max-run-time: 36000
|
||||
run:
|
||||
using: toolchain-script
|
||||
script: build-gn-linux.sh
|
||||
tooltool-downloads: public
|
||||
resources:
|
||||
- 'taskcluster/scripts/misc/tooltool-download.sh'
|
||||
- 'taskcluster/scripts/misc/build-gn-common.sh'
|
||||
toolchain-artifact: public/build/gn.tar.xz
|
||||
toolchains:
|
||||
- linux64-gcc-4.9
|
||||
|
|
|
@ -83,3 +83,28 @@ macosx64-cctools-port:
|
|||
toolchains:
|
||||
- linux64-cctools-port
|
||||
- linux64-clang-3.9
|
||||
|
||||
macosx64-gn:
|
||||
description: "gn toolchain build"
|
||||
treeherder:
|
||||
kind: build
|
||||
platform: toolchains/opt
|
||||
symbol: TM(gn)
|
||||
tier: 1
|
||||
worker-type: aws-provisioner-v1/gecko-{level}-b-macosx64
|
||||
worker:
|
||||
docker-image: {in-tree: desktop-build}
|
||||
max-run-time: 36000
|
||||
env:
|
||||
TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/macosx64/cross-clang.manifest"
|
||||
run:
|
||||
using: toolchain-script
|
||||
script: build-gn-macosx.sh
|
||||
tooltool-downloads: internal
|
||||
resources:
|
||||
- 'taskcluster/scripts/misc/tooltool-download.sh'
|
||||
- 'taskcluster/scripts/misc/build-gn-common.sh'
|
||||
toolchain-artifact: public/build/gn.tar.xz
|
||||
toolchains:
|
||||
- linux64-cctools-port
|
||||
- linux64-clang-3.9
|
||||
|
|
|
@ -112,3 +112,23 @@ win64-sccache:
|
|||
resources:
|
||||
- 'taskcluster/scripts/misc/tooltool-download.sh'
|
||||
toolchain-artifact: public/build/sccache2.tar.bz2
|
||||
|
||||
win32-gn:
|
||||
description: "gn toolchain build"
|
||||
treeherder:
|
||||
kind: build
|
||||
platform: toolchains/opt
|
||||
symbol: TW32(gn)
|
||||
tier: 1
|
||||
worker-type: aws-provisioner-v1/gecko-{level}-b-win2012
|
||||
worker:
|
||||
max-run-time: 36000
|
||||
env:
|
||||
TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win32/gn-build.manifest"
|
||||
run:
|
||||
using: toolchain-script
|
||||
script: build-gn-win32.sh
|
||||
resources:
|
||||
- 'taskcluster/scripts/misc/tooltool-download.sh'
|
||||
- 'taskcluster/scripts/misc/build-gn-common.sh'
|
||||
toolchain-artifact: public/build/gn.tar.bz2
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
#!/bin/bash
|
||||
set -e -v
|
||||
|
||||
# This is shared code for building GN.
|
||||
|
||||
# Each is a recent commit from chromium's master branch.
|
||||
: CHROMIUM_REV ${CHROMIUM_REV:=e6ba81e00ae835946e069e5bd80bd533b11d8442}
|
||||
: GTEST_REV ${GTEST_REV:=6c5116014ce51ef3273d800cbf75fcef99e798c6}
|
||||
: CHROMIUM_SRC_REV ${CHROMIUM_SRC_REV:=c338d43f49c0d72e69cd6e40eeaf4c0597dbdda1}
|
||||
|
||||
|
||||
git clone --no-checkout https://chromium.googlesource.com/chromium/src $WORKSPACE/gn-standalone
|
||||
cd $WORKSPACE/gn-standalone
|
||||
git checkout $CHROMIUM_SRC_REV
|
||||
|
||||
git clone --no-checkout https://chromium.googlesource.com/chromium/chromium chromium_checkout
|
||||
cd chromium_checkout
|
||||
git checkout $CHROMIUM_REV
|
||||
mkdir -p ../third_party
|
||||
mv third_party/libevent ../third_party
|
||||
cd ..
|
||||
|
||||
rm -rf testing
|
||||
mkdir testing
|
||||
cd testing
|
||||
git clone https://chromium.googlesource.com/chromium/testing/gtest
|
||||
cd gtest
|
||||
git checkout $GTEST_REV
|
||||
cd ../..
|
||||
|
||||
cd tools/gn
|
||||
patch -p1 < $WORKSPACE/build/src/taskcluster/scripts/misc/gn.patch
|
||||
|
||||
./bootstrap/bootstrap.py -s
|
||||
cd ../..
|
||||
|
||||
STAGE=gn
|
||||
mkdir -p $UPLOAD_DIR $STAGE
|
||||
|
||||
# At this point, the resulting binary is at:
|
||||
# $WORKSPACE/out/Release/gn
|
||||
if test "$MAC_CROSS" = "" -a "$(uname)" = "Linux"; then
|
||||
strip out/Release/gn
|
||||
fi
|
||||
cp out/Release/gn $STAGE
|
||||
|
||||
tar -acf gn.tar.$COMPRESS_EXT $STAGE
|
||||
cp gn.tar.$COMPRESS_EXT $UPLOAD_DIR
|
|
@ -0,0 +1,22 @@
|
|||
#!/bin/bash
|
||||
set -e -v
|
||||
|
||||
# This script is for building GN on Linux.
|
||||
|
||||
WORKSPACE=$HOME/workspace
|
||||
UPLOAD_DIR=$HOME/artifacts
|
||||
COMPRESS_EXT=xz
|
||||
export CC=$WORKSPACE/build/src/gcc/bin/gcc
|
||||
export CXX=$WORKSPACE/build/src/gcc/bin/g++
|
||||
|
||||
# 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
|
||||
. taskcluster/scripts/misc/build-gn-common.sh
|
|
@ -0,0 +1,40 @@
|
|||
#!/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.10.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/clang
|
||||
export CFLAGS="-target x86_64-apple-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-apple-darwin11-libtool $CROSS_CCTOOLS_PATH/bin/libtool
|
||||
export PATH=$CROSS_CCTOOLS_PATH/bin:$PATH
|
||||
|
||||
. taskcluster/scripts/misc/build-gn-common.sh
|
|
@ -0,0 +1,23 @@
|
|||
#!/bin/bash
|
||||
set -e -v
|
||||
|
||||
# This script is for building GN on Windows.
|
||||
|
||||
WORKSPACE=$PWD
|
||||
UPLOAD_DIR=$WORKSPACE/public/build
|
||||
COMPRESS_EXT=bz2
|
||||
|
||||
VSPATH="$WORKSPACE/build/src/vs2015u3"
|
||||
|
||||
export INCLUDE="${VSPATH}/VC/include:${VSPATH}/VC/atlmfc/include:${VSPATH}/SDK/Include/10.0.14393.0/ucrt:${VSPATH}/SDK/Include/10.0.14393.0/shared:${VSPATH}/SDK/Include/10.0.14393.0/um:${VSPATH}/SDK/Include/10.0.14393.0/winrt:${VSPATH}/DIA SDK/include"
|
||||
export LIB="${VSPATH}/VC/lib:${VSPATH}/VC/atlmfc/lib:${VSPATH}/SDK/lib/10.0.14393.0/ucrt/x86:${VSPATH}/SDK/lib/10.0.14393.0/um/x86:${VSPATH}/DIA SDK/lib"
|
||||
|
||||
export PATH="$WORKSPACE/build/src/ninja/bin:$PATH"
|
||||
export PATH="$WORKSPACE/build/src/mingw64/bin:$PATH"
|
||||
export PATH="${VSPATH}/VC/bin/amd64_x86:${VSPATH}/VC/bin/amd64:${VSPATH}/VC/bin:${VSPATH}/SDK/bin/x86:${VSPATH}/SDK/bin/x64:${VSPATH}/DIA SDK/bin:${PATH}"
|
||||
export PATH="${VSPATH}/VC/redist/x86/Microsoft.VC140.CRT:${VSPATH}/VC/redist/x64/Microsoft.VC140.CRT:${VSPATH}/SDK/Redist/ucrt/DLLs/x86:${VSPATH}/SDK/Redist/ucrt/DLLs/x64:${PATH}"
|
||||
|
||||
cd $WORKSPACE/build/src
|
||||
|
||||
. taskcluster/scripts/misc/tooltool-download.sh
|
||||
. taskcluster/scripts/misc/build-gn-common.sh
|
|
@ -0,0 +1,78 @@
|
|||
diff --git a/bootstrap/bootstrap.py b/bootstrap/bootstrap.py
|
||||
index ff2ae57..7e12436 100755
|
||||
--- a/bootstrap/bootstrap.py
|
||||
+++ b/bootstrap/bootstrap.py
|
||||
@@ -29,9 +29,10 @@ BOOTSTRAP_DIR = os.path.dirname(os.path.abspath(__file__))
|
||||
GN_ROOT = os.path.dirname(BOOTSTRAP_DIR)
|
||||
SRC_ROOT = os.path.dirname(os.path.dirname(GN_ROOT))
|
||||
|
||||
+is_mac_cross = os.environ.get('MAC_CROSS', False)
|
||||
is_win = sys.platform.startswith('win')
|
||||
-is_linux = sys.platform.startswith('linux')
|
||||
-is_mac = sys.platform.startswith('darwin')
|
||||
+is_linux = sys.platform.startswith('linux') and not is_mac_cross
|
||||
+is_mac = sys.platform.startswith('darwin') or is_mac_cross
|
||||
is_aix = sys.platform.startswith('aix')
|
||||
is_posix = is_linux or is_mac or is_aix
|
||||
|
||||
@@ -595,7 +596,6 @@ def write_gn_ninja(path, root_gen_dir, options):
|
||||
'base/synchronization/condition_variable_posix.cc',
|
||||
'base/synchronization/lock_impl_posix.cc',
|
||||
'base/synchronization/read_write_lock_posix.cc',
|
||||
- 'base/synchronization/waitable_event_posix.cc',
|
||||
'base/sys_info_posix.cc',
|
||||
'base/task_scheduler/task_tracker_posix.cc',
|
||||
'base/threading/platform_thread_internal_posix.cc',
|
||||
@@ -603,10 +603,19 @@ def write_gn_ninja(path, root_gen_dir, options):
|
||||
'base/threading/thread_local_storage_posix.cc',
|
||||
'base/threading/worker_pool_posix.cc',
|
||||
'base/time/time_conversion_posix.cc',
|
||||
+ ])
|
||||
+
|
||||
+ if not is_mac:
|
||||
+ static_libraries['base']['sources'].extend([
|
||||
+ 'base/synchronization/waitable_event_posix.cc',
|
||||
'base/time/time_exploded_posix.cc',
|
||||
'base/time/time_now_posix.cc',
|
||||
- 'base/trace_event/heap_profiler_allocation_register_posix.cc',
|
||||
+ ])
|
||||
+
|
||||
+ static_libraries['base']['sources'].extend([
|
||||
+ 'base/trace_event/heap_profiler_allocation_register_posix.cc',
|
||||
])
|
||||
+
|
||||
static_libraries['libevent'] = {
|
||||
'sources': [
|
||||
'base/third_party/libevent/buffer.c',
|
||||
@@ -685,6 +694,7 @@ def write_gn_ninja(path, root_gen_dir, options):
|
||||
'base/mac/call_with_eh_frame.cc',
|
||||
'base/mac/call_with_eh_frame_asm.S',
|
||||
'base/mac/foundation_util.mm',
|
||||
+ 'base/mac/mac_util.mm',
|
||||
'base/mac/mach_logging.cc',
|
||||
'base/mac/scoped_mach_port.cc',
|
||||
'base/mac/scoped_mach_vm.cc',
|
||||
@@ -697,6 +707,7 @@ def write_gn_ninja(path, root_gen_dir, options):
|
||||
'base/process/process_iterator_mac.cc',
|
||||
'base/process/process_metrics_mac.cc',
|
||||
'base/strings/sys_string_conversions_mac.mm',
|
||||
+ 'base/synchronization/waitable_event_mac.cc',
|
||||
'base/sys_info_mac.mm',
|
||||
'base/time/time_mac.cc',
|
||||
'base/threading/platform_thread_mac.mm',
|
||||
@@ -735,6 +746,7 @@ def write_gn_ninja(path, root_gen_dir, options):
|
||||
'base/memory/memory_pressure_monitor_win.cc',
|
||||
'base/memory/shared_memory_handle_win.cc',
|
||||
'base/memory/shared_memory_win.cc',
|
||||
+ 'base/memory/shared_memory_tracker.cc',
|
||||
'base/message_loop/message_pump_win.cc',
|
||||
'base/native_library_win.cc',
|
||||
'base/power_monitor/power_monitor_device_source_win.cc',
|
||||
@@ -799,6 +811,7 @@ def write_gn_ninja(path, root_gen_dir, options):
|
||||
'version.lib',
|
||||
'winmm.lib',
|
||||
'ws2_32.lib',
|
||||
+ 'shlwapi.lib',
|
||||
])
|
||||
|
||||
# we just build static libraries that GN needs
|
Загрузка…
Ссылка в новой задаче