auto-version.sh revision d8543bb6618c17b12da906afa77d216f58cf4058
1#!/usr/bin/bash 2 3# Copyright (C) 2007 Apple Inc. All rights reserved. 4# 5# Redistribution and use in source and binary forms, with or without 6# modification, are permitted provided that the following conditions 7# are met: 8# 1. Redistributions of source code must retain the above copyright 9# notice, this list of conditions and the following disclaimer. 10# 2. Redistributions in binary form must reproduce the above copyright 11# notice, this list of conditions and the following disclaimer in the 12# documentation and/or other materials provided with the distribution. 13# 14# THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY 15# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 17# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR 18# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 19# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 20# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 21# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 22# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 24# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 26SRCPATH=`cygpath -u "$WEBKITLIBRARIESDIR\Tools\Scripts"` 27VERSIONPATH=`cygpath -u "$1"` 28VERSIONPATH=$VERSIONPATH/include 29VERSIONFILE=$VERSIONPATH/autoversion.h 30mkdir -p "$VERSIONPATH" 31 32PRODUCTVERSION=`cat "$SRCPATH/PRODUCTVERSION"` 33MAJORVERSION=`echo "$PRODUCTVERSION" | sed 's/\([^\.]*\)\.\([^.]*\)\(\.\([^.]*\)\)\?/\1/'` 34MINORVERSION=`echo "$PRODUCTVERSION" | sed 's/\([^\.]*\)\.\([^.]*\)\(\.\([^.]*\)\)\?/\2/'` 35TINYVERSION=`echo "$PRODUCTVERSION" | sed 's/\([^\.]*\)\.\([^.]*\)\(\.\([^.]*\)\)\?/\4/'` 36if [ "$TINYVERSION" == "" ]; then 37 TINYVERSION=0 38fi 39 40if [ "$RC_PROJECTSOURCEVERSION" == "" ]; then 41 PROPOSEDVERSION=$(cat "$SRCPATH/VERSION") 42else 43 PROPOSEDVERSION="$RC_PROJECTSOURCEVERSION" 44fi 45 46if [ `echo "$PROPOSEDVERSION" | grep -c -E "4\.|4$"` -ne 0 ]; then 47 echo " 48 Can't set WebKit's version to something that ends in a 4! 49 If we do, someone's going to think it's Netscape 4. 50 Radar bug 3787996 has some details." 51 exit 1 52fi 53 54BLDMAJORVERSION=`echo "$PROPOSEDVERSION" | sed 's/\([^\.]*\)\(\.\([^.]*\)\(\.\([^.]*\)\)\?\)\?/\1/'` 55BLDMINORVERSION=`echo "$PROPOSEDVERSION" | sed 's/\([^\.]*\)\(\.\([^.]*\)\(\.\([^.]*\)\)\?\)\?/\3/'` 56BLDVARIANTVERSION=`echo "$PROPOSEDVERSION" | sed 's/\([^\.]*\)\(\.\([^.]*\)\(\.\([^.]*\)\)\?\)\?/\5/'` 57if [ "$BLDMINORVERSION" == "" ]; then 58 BLDMINORVERSION=0 59fi 60if [ "$BLDVARIANTVERSION" == "" ]; then 61 BLDVARIANTVERSION=0 62fi 63SVNOPENSOURCEREVISION=`svn info | grep '^Revision' | sed 's/^Revision: \(.*\)/\1/'` 64 65BLDNMBR="$PROPOSEDVERSION" 66BLDNMBRSHORT="$BLDNMBR" 67 68if [ "$RC_PROJECTSOURCEVERSION" == "" ]; then 69 BLDNMBRSHORT="$BLDNMBRSHORT+" 70 BLDNMBR="$BLDNMBRSHORT $(whoami) - $(date) - r$SVNOPENSOURCEREVISION" 71fi 72 73cat > "$VERSIONFILE" <<EOF 74#define __VERSION_TEXT__ "$PRODUCTVERSION ($BLDNMBR)" 75#define __BUILD_NUMBER_SHORT__ "$BLDNMBRSHORT" 76#define __VERSION_MAJOR__ $MAJORVERSION 77#define __VERSION_MINOR__ $MINORVERSION 78#define __VERSION_TINY__ $TINYVERSION 79#define __BUILD_NUMBER_MAJOR__ $BLDMAJORVERSION 80#define __BUILD_NUMBER_MINOR__ $BLDMINORVERSION 81#define __BUILD_NUMBER_VARIANT__ $BLDVARIANTVERSION 82#define __SVN_REVISION__ $SVNREVISION 83EOF 84