blob: 130b5a004bc36c16f41ca2ef77819d0e34a2dda2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
#!/bin/bash
# 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.
# This script expects the following environment variables to be set. Xcode
# normally sets them:
#
# CONFIGURATION - Release or Debug; this script only operates when Release.
# SRCROOT - /path/to/chrome/src/chrome
# BUILT_PRODUTS_DIR - /path/to/chrome/src/xcodebuild/Release
#
# The script also takes a single argument defining the branding type.
#
# To test this script without running an entire build:
#
# cd /path/to/chrome/src/chrome
# CONFIGURATION=Release \
# SRCROOT=$(pwd) \
# BUILT_PRODUCTS_DIR=$(pwd)/../xcodebuild/Release \
# ../build/mac/dump_app_syms Chromium
# 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
BRAND_SCRIPT="${TOP}/build/branding_value.sh"
SRC_APP_NAME=$("${BRAND_SCRIPT}" "${BUILD_BRANDING}" PRODUCT_FULLNAME)
. "${TOP}/chrome/VERSION"
BREAKPAD_DUMP_SYMS="${BUILT_PRODUCTS_DIR}/dump_syms"
FULL_VERSION="${MAJOR}.${MINOR}.${BUILD}.${PATCH}"
ARCH="i386"
DSYM_TAR_PATH="${BUILT_PRODUCTS_DIR}/${SRC_APP_NAME}.dSYM.tar.bz2"
declare -a DSYMS
for SRC_BUNDLE in "${SRC_APP_NAME}.app" \
"${SRC_APP_NAME} Framework.framework" \
"${SRC_APP_NAME} Helper.app" ; do
SRC_STEM=$(echo "${SRC_BUNDLE}" | sed -Ee 's/^(.*)\..*$/\1/')
SRC_BUNDLE_PATH="${BUILT_PRODUCTS_DIR}/${SRC_BUNDLE}"
DSYM_NAME="${SRC_BUNDLE}.dSYM"
DSYM_PATH="${BUILT_PRODUCTS_DIR}/${DSYM_NAME}"
DWARF_PATH="${DSYM_PATH}/Contents/Resources/DWARF/${SRC_STEM}"
BPAD_SYM_NAME="${SRC_STEM}-${FULL_VERSION}-${ARCH}.breakpad"
BPAD_SYM_PATH="${BUILT_PRODUCTS_DIR}/${BPAD_SYM_NAME}"
# Only run dump_syms if the file has changed since the last dump.
if [ "${DWARF_PATH}" -nt "${BPAD_SYM_PATH}" ] ; then
"${BREAKPAD_DUMP_SYMS}" -a "${ARCH}" "${DWARF_PATH}" > "${BPAD_SYM_PATH}"
fi
# Remove the .dSYM archive if the file has changed since the archive was
# last generated. This will cause a new .dSYM archive to be created.
if [ "${DWARF_PATH}" -nt "${DSYM_TAR_PATH}" ] ; then
rm -f "${DSYM_TAR_PATH}"
fi
# Push the .dSYM bundle onto the DSYMS array so that it will be included in
# the .dSYM archive if a new one is needed
DSYMS[${#DSYMS[@]}]="${DSYM_NAME}"
done
# Create the archive of .dSYM bundles.
if [ ! -e "${DSYM_TAR_PATH}" ] ; then
# Change directory so that absolute paths aren't included in the archive.
(cd "${BUILT_PRODUCTS_DIR}" &&
tar --owner 0 --group 0 -jcf "${DSYM_TAR_PATH}" "${DSYMS[@]}")
fi
|