Port bug 1002606 - Enable sccache for mac try builds - to fix check-sync-dirs bustage. rs=build-system-peer-port. CLOSED TREE
authorMark Banner <standard8@mozilla.com>
Thu, 01 May 2014 17:44:19 +0100
changeset 20054 7c49081689a7490ec027bb36fc4a427ac9fec665
parent 20053 4291a8d2ae267c2f19e9d27bf588ccf92396fc08
child 20055 80f0080632ddc45815a5c37ec976643a25b68fe6
push id1179
push userCallek@gmail.com
push dateMon, 21 Jul 2014 20:52:37 +0000
treeherdercomm-beta@84d8ef10a503 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersbuild-system-peer-port
bugs1002606
Port bug 1002606 - Enable sccache for mac try builds - to fix check-sync-dirs bustage. rs=build-system-peer-port. CLOSED TREE
build/macosx/mozconfig.common
build/mozconfig.cache
--- a/build/macosx/mozconfig.common
+++ b/build/macosx/mozconfig.common
@@ -19,9 +19,9 @@ if [ -z "$CC" ]; then
     export CC=clang
 fi
 
 # If not set use the system default clang++
 if [ -z "$CXX" ]; then
     export CXX=clang++
 fi
 
-ac_add_options --with-ccache
+. "$topsrcdir/build/mozconfig.cache"
new file mode 100644
--- /dev/null
+++ b/build/mozconfig.cache
@@ -0,0 +1,63 @@
+# 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
+
+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"; then
+    case "${branch}_${master}" in
+    try_*scl1.mozilla.com*|try_*.scl3.mozilla.com*)
+        bucket=mozilla-releng-ceph-cache-scl3-try
+        mk_add_options "export SCCACHE_NO_HTTPS=1"
+        ;;
+    try_*use1.mozilla.com*)
+        bucket=mozilla-releng-s3-cache-us-east-1-try
+        ;;
+    try_*usw2.mozilla.com*)
+        bucket=mozilla-releng-s3-cache-us-west-2-try
+        ;;
+    b2g-inbound_*use1.mozilla.com*)
+        bucket=mozilla-releng-s3-cache-us-east-1-prod
+        ;;
+    b2g-inbound_*usw2.mozilla.com*)
+        bucket=mozilla-releng-s3-cache-us-west-2-prod
+        ;;
+    esac
+fi
+
+if test -z "$bucket"; then
+    case "$platform" in
+    win*) : ;;
+    *)
+        ac_add_options --with-ccache
+    esac
+else
+    mk_add_options "export SCCACHE_BUCKET=$bucket"
+    case "$master" in
+    *use1.mozilla.com*|*usw2.mozilla.com*)
+        mk_add_options "export SCCACHE_NAMESERVER=169.254.169.253"
+        ;;
+    esac
+    ac_add_options "--with-compiler-wrapper=python2.7 $topsrcdir/sccache/sccache.py"
+    mk_add_options MOZ_PREFLIGHT+=build/sccache.mk
+    mk_add_options MOZ_POSTFLIGHT+=build/sccache.mk
+    case "$platform" in
+    win*)
+        # sccache supports a special flag to create depfiles.
+        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