diff --git a/mac/dump_app_syms b/mac/dump_app_syms new file mode 100755 index 000000000..a1e497c89 --- /dev/null +++ b/mac/dump_app_syms @@ -0,0 +1,37 @@ +#!/bin/sh + +# Copyright (c) 2009 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# Make sure we got the header to write into passed to us +if [ $# -ne 1 ]; then + echo "error: missing branding as an argument" >&2 + exit 1 +fi + +set -ex + +# Skip out if we're aren't in Release mode, no need for dump_syms on debug runs. +if [ "${CONFIGURATION}" != "Release" ] ; then + exit 0 +fi + +TOP="${SRCROOT}/.." +BUILD_BRANDING=$1 + +. "${TOP}/chrome/VERSION" + +SRC_APP_NAME="${BUILD_BRANDING}" +BREAKPAD_DUMP_SYMS="${BUILT_PRODUCTS_DIR}/dump_syms" +BREAKPAD_PRODUCT_ID="${BUILD_BRANDING}_Mac" +FULL_VERSION="${MAJOR}.${MINOR}.${BUILD}.${PATCH}" +SRC_APP_PATH="${BUILT_PRODUCTS_DIR}/${SRC_APP_NAME}.app" +# Created by the build/mac/strip_from_xcode script. +UNSTRIPPED_APP="${SRC_APP_PATH}.dSYM/Contents/Resources/DWARF/${SRC_APP_NAME}" +SYMBOL_FILE="${BUILT_PRODUCTS_DIR}/${BUILD_BRANDING}-${FULL_VERSION} i386.breakpad" + +# Only run dump_syms if the file has changed since we last did a dump. +if [ "${UNSTRIPPED_APP}" -nt "${SYMBOL_FILE}" ] ; then + "${BREAKPAD_DUMP_SYMS}" -a i386 "${UNSTRIPPED_APP}" > "${SYMBOL_FILE}" +fi diff --git a/mac/tweak_app_infoplist b/mac/tweak_app_infoplist index 4040fa058..f8a062d1a 100755 --- a/mac/tweak_app_infoplist +++ b/mac/tweak_app_infoplist @@ -4,6 +4,32 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +set -e + +# Pull off the optional args +INCLUDE_BREAKPAD=0 +OPTERR=0 +while getopts ":b:" an_opt ; do + case $an_opt in + b) + INCLUDE_BREAKPAD=$OPTARG + ;; + \?) + echo "Unknown option $OPTARG" + exit 1 + ;; + :) + echo "Option $OPTARG missing it's value" + exit 1 + ;; + *) + echo "Not recognized argument $an_opt" + exit 1 + ;; + esac +done +shift $(($OPTIND - 1)) + # Make sure we got the header to write into passed to us if [ $# -ne 1 ]; then echo "error: missing branding as an argument" >&2 @@ -26,12 +52,12 @@ fi # by the time the app target is done, the info.plist is correct. # -set -ex - TOP="${SRCROOT}/.." BUILD_BRANDING=$1 SRC_APP_PATH="${BUILT_PRODUCTS_DIR}/${BUILD_BRANDING}.app" +set -x + # Figure out what version this build corresponds to. Just use the svn revision # for now. Warning: my svnversion returns 10495:10552M. But that's ok since # it is just for reference. @@ -89,6 +115,32 @@ defaults write "${TMP_INFO_PLIST_DEFAULTS}" \ defaults write "${TMP_INFO_PLIST_DEFAULTS}" \ NSHumanReadableCopyright -string "${COPYRIGHT_STRING}" +# Add/Remove the breakpad keys +if [ "${INCLUDE_BREAKPAD}" == "1" ] ; then + defaults write "${TMP_INFO_PLIST_DEFAULTS}" \ + BreakpadURL "https://clients2.google.com/cr/report" + defaults write "${TMP_INFO_PLIST_DEFAULTS}" BreakpadReportInterval "3600" + defaults write "${TMP_INFO_PLIST_DEFAULTS}" \ + BreakpadProduct "${BUILD_BRANDING}_Mac" + defaults write "${TMP_INFO_PLIST_DEFAULTS}" \ + BreakpadProductDisplay "${BUILD_BRANDING}" + defaults write "${TMP_INFO_PLIST_DEFAULTS}" \ + BreakpadVersion -string "${FULL_VERSION}" + defaults write "${TMP_INFO_PLIST_DEFAULTS}" BreakpadSendAndExit "YES" + # TODO: remove/update this when we have first launch + defaults write "${TMP_INFO_PLIST_DEFAULTS}" BreakpadSkipConfirm "YES" +else + # Make sure the keys aren't there, || true to avoid errors if they aren't. + defaults delete "${TMP_INFO_PLIST_DEFAULTS}" BreakpadURL || true + defaults delete "${TMP_INFO_PLIST_DEFAULTS}" BreakpadReportInterval || true + defaults delete "${TMP_INFO_PLIST_DEFAULTS}" BreakpadProduct || true + defaults delete "${TMP_INFO_PLIST_DEFAULTS}" BreakpadProductDisplay || true + defaults delete "${TMP_INFO_PLIST_DEFAULTS}" BreakpadVersion || true + defaults delete "${TMP_INFO_PLIST_DEFAULTS}" BreakpadSendAndExit || true + # TODO: remove/update this when we have first launch + defaults delete "${TMP_INFO_PLIST_DEFAULTS}" BreakpadSkipConfirm || true +fi + # Info.plist will work perfectly well in any plist format, but traditionally # applications use xml1 for this, so convert it back after whatever defaults # might have done.