mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-30 13:45:27 +00:00
53ccf8158e
Backed out changeset 196f9ddbf7aa (bug 1318370) Backed out changeset 72f6eace33a1 (bug 1318370) Backed out changeset c0c0e10ed613 (bug 1318370) Backed out changeset a8032ae9cb2a (bug 1318370) Backed out changeset 0848b3201c40 (bug 1318370)
144 lines
5.0 KiB
Plaintext
144 lines
5.0 KiB
Plaintext
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
# Setup for build cache
|
|
|
|
# Avoid duplication if the file happens to be included twice.
|
|
if test -z "$bucket" -a -z "$NO_CACHE"; then
|
|
|
|
# buildbot (or builders that use buildprops.json):
|
|
if [ -f $topsrcdir/../buildprops.json ]; then
|
|
read branch platform master <<EOF
|
|
$(python2.7 -c 'import json; p = json.loads(open("'"$topsrcdir"'/../buildprops.json").read())["properties"]; print p["branch"], p["platform"], p["master"]' 2> /dev/null)
|
|
EOF
|
|
|
|
bucket=
|
|
if test -z "$SCCACHE_DISABLE" -a -z "$no_sccache" -a -z "$MOZ_PGO_IS_SET" -a -z "$MOZ_PGO"; then
|
|
case "${branch}" in
|
|
try)
|
|
case "${master}" in
|
|
*scl1.mozilla.com*|*.scl3.mozilla.com*)
|
|
bucket=mozilla-releng-s3-cache-us-west-1-try
|
|
;;
|
|
*use1.mozilla.com*)
|
|
bucket=mozilla-releng-s3-cache-us-east-1-try
|
|
;;
|
|
*usw2.mozilla.com*)
|
|
bucket=mozilla-releng-s3-cache-us-west-2-try
|
|
;;
|
|
esac
|
|
;;
|
|
autoland|mozilla-inbound)
|
|
case "${master}" in
|
|
*use1.mozilla.com*)
|
|
bucket=mozilla-releng-s3-cache-us-east-1-prod
|
|
;;
|
|
*usw2.mozilla.com*)
|
|
bucket=mozilla-releng-s3-cache-us-west-2-prod
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
fi
|
|
fi
|
|
|
|
# builds where buildprops didn't have the data (eg: taskcluster or non-buildbot) and without sccache disabled:
|
|
if test -z "$bucket" -a -z "$SCCACHE_DISABLE" -a -z "$no_sccache" -a -z "$MOZ_PGO_IS_SET" -a -z "$MOZ_PGO"; then
|
|
|
|
# prevent rerun if az is set, or wget is not available
|
|
if test -z "$availability_zone" -a -x "$(command -v wget)"; then
|
|
if test -n "${TASKCLUSTER_WORKER_GROUP}"; then
|
|
availability_zone="${TASKCLUSTER_WORKER_GROUP}"
|
|
else
|
|
# timeout after 1 second, and don't retry (failure indicates instance is not in ec2 or network issue)
|
|
# availability_zone is of the form <region><letter> where region is e.g. us-west-2, and az is us-west-2a
|
|
availability_zone=$(wget -T 1 -t 1 -q -O - http://169.254.169.254/latest/meta-data/placement/availability-zone || true)
|
|
fi
|
|
if test -z "$availability_zone" -o "$availability_zone" = "not-ec2"; then
|
|
availability_zone=not-ec2
|
|
else
|
|
# region is az with last letter trimmed
|
|
region=${availability_zone%?}
|
|
# set S3 bucket according to tree (level)
|
|
case "${GECKO_HEAD_REPOSITORY}" in
|
|
*hg.mozilla.org/try*)
|
|
bucket=taskcluster-level-1-sccache-${region}
|
|
;;
|
|
*hg.mozilla.org/integration/autoland*|*hg.mozilla.org/integration/mozilla-inbound*)
|
|
bucket=taskcluster-level-3-sccache-${region}
|
|
;;
|
|
esac
|
|
|
|
# set a dummy master
|
|
case "${region}" in
|
|
eu-central-1)
|
|
master=dummy.euc1.mozilla.com
|
|
;;
|
|
us-east-1)
|
|
master=dummy.use1.mozilla.com
|
|
;;
|
|
us-west-1)
|
|
master=dummy.usw1.mozilla.com
|
|
;;
|
|
us-west-2)
|
|
master=dummy.usw2.mozilla.com
|
|
;;
|
|
esac
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
# if platform hasn't been determined from buildprops, and we're on windows,
|
|
# it must be set to prevent adding ac_add_options --with-ccache below
|
|
if test -z "$platform"; then
|
|
# set platform based on the SYSTEMROOT env var
|
|
case "${SYSTEMROOT}" in
|
|
*Windows)
|
|
platform=windows
|
|
suffix=.exe
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
if test -z "$bucket"; then
|
|
case "$platform" in
|
|
win*) : ;;
|
|
*)
|
|
ac_add_options --with-ccache
|
|
esac
|
|
else
|
|
if ! test -e $topsrcdir/sccache2/sccache${suffix}; then
|
|
echo "sccache2 missing in the tooltool manifest" >&2
|
|
exit 1
|
|
fi
|
|
mk_add_options "export SCCACHE_BUCKET=$bucket"
|
|
case "$master" in
|
|
*us[ew][12].mozilla.com*|*euc1.mozilla.com*)
|
|
mk_add_options "export SCCACHE_NAMESERVER=169.254.169.253"
|
|
;;
|
|
esac
|
|
ac_add_options "--with-ccache=$topsrcdir/sccache2/sccache${suffix}"
|
|
export SCCACHE_VERBOSE_STATS=1
|
|
mk_add_options MOZ_PREFLIGHT_ALL+=build/sccache.mk
|
|
mk_add_options MOZ_POSTFLIGHT_ALL+=build/sccache.mk
|
|
mk_add_options "UPLOAD_EXTRA_FILES+=sccache.log.gz"
|
|
case "$platform" in
|
|
win*)
|
|
# sccache supports a special flag to create depfiles.
|
|
#TODO: bug 1318370 - move this all into toolchain.configure
|
|
export _DEPEND_CFLAGS='-deps$(MDDEPDIR)/$(@F).pp'
|
|
# Windows builds have a default wrapper that needs to be overridden
|
|
mk_add_options "export CC_WRAPPER="
|
|
mk_add_options "export CXX_WRAPPER="
|
|
# For now, sccache doesn't support separate PDBs so force debug info to be
|
|
# in object files.
|
|
mk_add_options "export COMPILE_PDB_FLAG="
|
|
mk_add_options "export HOST_PDB_FLAG="
|
|
mk_add_options "export MOZ_DEBUG_FLAGS=-Z7"
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
fi
|