Index: build/mac/tweak_app_infoplist |
=================================================================== |
--- build/mac/tweak_app_infoplist (revision 29018) |
+++ build/mac/tweak_app_infoplist (working copy) |
@@ -1,182 +0,0 @@ |
-#!/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. |
- |
-set -e |
- |
-# Pull off the optional args |
-USE_BREAKPAD=0 |
-USE_KEYSTONE=0 |
-USE_SVN=1 |
-OPTERR=0 |
-while getopts ":b:k:s:" an_opt ; do |
- case $an_opt in |
- b) |
- USE_BREAKPAD=$OPTARG |
- ;; |
- k) |
- USE_KEYSTONE=$OPTARG |
- ;; |
- s) |
- USE_SVN=$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 the branding argument was supplied. |
-if [ $# -ne 1 ]; then |
- echo "error: missing branding as an argument" >&2 |
- exit 1 |
-fi |
- |
-# |
-# Xcode supports build variable substitutions and CPP; sadly, that doesn't work |
-# because: |
-# |
-# 1. Xcode wants to do the Info.plist work before it runs any build phases, |
-# this means if we were to generate a .h file for INFOPLIST_PREFIX_HEADER |
-# we'd have to put it in another target so it runs in time. |
-# 2. Xcode also doesn't check to see if the header being used as a prefix for |
-# the Info.plist has changed. So even if we updated it, it's only looking |
-# at the modtime of the info.plist to see if that's changed. |
-# |
-# So, we work around all of this by making a script build phase that will run |
-# during the app build, and simply update the info.plist in place. This way |
-# by the time the app target is done, the info.plist is correct. |
-# |
- |
-TOP="${SRCROOT}/.." |
-BUILD_BRANDING=$1 |
- |
-set -x |
- |
-if [ "${USE_SVN}" = "1" ] ; then |
- # Visible in the about:version page. |
- SVN_INFO=$(svn info "${TOP}" 2>/dev/null || true) |
- SVN_REVISION=$(echo "${SVN_INFO}" | sed -Ene 's/^Revision: (.*)$/\1/p') |
- if [ -z "${SVN_REVISION}" ] ; then |
- GIT_INFO=$(git log -1 --grep=git-svn-id --format=%b 2>/dev/null || true) |
- SVN_REVISION=$(echo "${GIT_INFO}" | \ |
- sed -Ene 's/^git-svn-id: .*@([0-9]+).*$/\1/p') |
- # Finding the revision for git and svn has failed. |
- if [ -z "${SVN_REVISION}" ] ; then |
- echo "Could not determine svn revision. This may be OK." >&2 |
- else |
- SVN_PATH=$(echo "${GIT_INFO}" | \ |
- sed -Ene 's%^git-svn-id: .*/chrome/(.*)@.*$%/\1%p') |
- fi |
- else |
- # Grab the path to the source root in the Subversion repository by taking |
- # the URL to the source root directory and the repository root, and |
- # removing the latter from the former. This ensures that SVN_PATH will |
- # contain a useful path regardless of the Subversion server, mirror, and |
- # authentication scheme in use. |
- SVN_URL=$(echo "${SVN_INFO}" | sed -Ene 's/^URL: (.*)$/\1/p') |
- SVN_ROOT=$(echo "${SVN_INFO}" | sed -Ene 's/^Repository Root: (.*)$/\1/p') |
- if [ -n "${SVN_ROOT}" ] && \ |
- [ "${SVN_URL:0:${#SVN_ROOT}}" = "${SVN_ROOT}" ] ; then |
- SVN_PATH="${SVN_URL:${#SVN_ROOT}}" |
- fi |
- fi |
-fi |
- |
-# Pull in the Chrome version number. |
-. "${TOP}/chrome/VERSION" |
-FULL_VERSION="${MAJOR}.${MINOR}.${BUILD}.${PATCH}" |
- |
-# I really hate how "defaults" doesn't take a real pathname but instead insists |
-# on appending ".plist" to everything. |
-TMP_INFO_PLIST_DEFAULTS="${TEMP_DIR}/Info" |
-TMP_INFO_PLIST="${TMP_INFO_PLIST_DEFAULTS}.plist" |
-cp "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}" "${TMP_INFO_PLIST}" |
- |
-# Save off the Subversion revision number and source root path in case they're |
-# needed. |
-if [ ! -z "${SVN_REVISION}" ] ; then |
- defaults write "${TMP_INFO_PLIST_DEFAULTS}" \ |
- SVNRevision -string "${SVN_REVISION}" |
-else |
- defaults delete "${TMP_INFO_PLIST_DEFAULTS}" SVNRevision || true |
-fi |
-if [ ! -z "${SVN_PATH}" ] ; then |
- defaults write "${TMP_INFO_PLIST_DEFAULTS}" SVNPath -string "${SVN_PATH}" |
-else |
- defaults delete "${TMP_INFO_PLIST_DEFAULTS}" SVNPath || true |
-fi |
- |
-# Add public version info so "Get Info" works |
-defaults write "${TMP_INFO_PLIST_DEFAULTS}" \ |
- CFBundleShortVersionString -string "${FULL_VERSION}" |
-# Honor the 429496.72.95 limit. The maximum comes from splitting 2^32 - 1 into |
-# 6, 2, 2 digits. The limitation was present in Tiger, but it could have been |
-# fixed in later OS release, but hasn't been tested (it's easy enough to find |
-# out with "lsregister -dump). |
-# http://lists.apple.com/archives/carbon-dev/2006/Jun/msg00139.html |
-# BUILD will always be an increasing value, so BUILD_PATH gives us something |
-# unique that meetings what LS wants. |
-defaults write "${TMP_INFO_PLIST_DEFAULTS}" \ |
- CFBundleVersion -string "${BUILD}.${PATCH}" |
- |
-# Add or remove the Breakpad keys. |
-if [ "${USE_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" |
- 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 |
- defaults delete "${TMP_INFO_PLIST_DEFAULTS}" BreakpadSkipConfirm || true |
-fi |
- |
-# Add or remove the Keystone keys (only supported in release builds). |
-if [ "${USE_KEYSTONE}" = "1" ] && [ "${CONFIGURATION}" = "Release" ] ; then |
- KEYSTONE_URL="https://tools.google.com/service/update2" |
- KEYSTONE_APP_ID=$(defaults read "${TMP_INFO_PLIST_DEFAULTS}" \ |
- CFBundleIdentifier) |
- defaults write "${TMP_INFO_PLIST_DEFAULTS}" \ |
- KSVersion -string "${FULL_VERSION}" |
- defaults write "${TMP_INFO_PLIST_DEFAULTS}" KSProductID "${KEYSTONE_APP_ID}" |
- defaults write "${TMP_INFO_PLIST_DEFAULTS}" KSUpdateURL "${KEYSTONE_URL}" |
-else |
- # Make sure the keys aren't there, || true to avoid errors if they aren't. |
- defaults delete "${TMP_INFO_PLIST_DEFAULTS}" KSVersion || true |
- defaults delete "${TMP_INFO_PLIST_DEFAULTS}" KSProductID || true |
- defaults delete "${TMP_INFO_PLIST_DEFAULTS}" KSUpdateURL || 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. |
-plutil -convert xml1 "${TMP_INFO_PLIST}" |
-cp "${TMP_INFO_PLIST}" "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}" |
- |
-# Clean up. |
-rm -f "${TMP_INFO_PLIST}" |