2008-01-07 Steve Falkenburg <sfalken@apple.com>
[WebKit-https.git] / WebCore / WebCore.vcproj / auto-version.sh
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
26 SRCPATH=`cygpath -u "$1"`
27 VERSIONPATH=`cygpath -u "$2"`
28 VERSIONPATH=$VERSIONPATH/include
29 VERSIONFILE=$VERSIONPATH/autoversion.h
30 mkdir -p "$VERSIONPATH"
31
32 PRODUCTVERSION=`cat "$SRCPATH/PRODUCTVERSION"`
33 MAJORVERSION=`sed 's/\([^\.]*\)\.\([^.]*\)\(\.\([^.]*\)\)\?/\1/' "$SRCPATH/PRODUCTVERSION"`
34 MINORVERSION=`sed 's/\([^\.]*\)\.\([^.]*\)\(\.\([^.]*\)\)\?/\2/' "$SRCPATH/PRODUCTVERSION"`
35 TINYVERSION=`sed 's/\([^\.]*\)\.\([^.]*\)\(\.\([^.]*\)\)\?/\4/' "$SRCPATH/PRODUCTVERSION"`
36 if [ "$TINYVERSION" == "" ]; then
37     TINYVERSION=0
38 fi
39
40 if [ "$RC_PROJECTSOURCEVERSION" == "" ]; then
41     echo -n `cat "$SRCPATH/VERSION"` > "$VERSIONFILE"
42 else
43     echo -n $RC_PROJECTSOURCEVERSION > "$VERSIONFILE"
44 fi
45
46 if [ `grep -c -E "4\.|4$" "$VERSIONFILE"` -ne 0 ]; then
47     echo "Can't set WebKit's version to something that ends in a 4!"
48     echo "If we do, someone's going to think it's Netscape 4."
49     echo "Radar bug 3787996 has some details."
50     exit 1
51 fi
52
53 BLDMAJORVERSION=`sed 's/\([^\.]*\)\(\.\([^.]*\)\(\.\([^.]*\)\)\?\)\?/\1/' "$VERSIONFILE"`
54 BLDMINORVERSION=`sed 's/\([^\.]*\)\(\.\([^.]*\)\(\.\([^.]*\)\)\?\)\?/\3/' "$VERSIONFILE"`
55 BLDVARIANTVERSION=`sed 's/\([^\.]*\)\(\.\([^.]*\)\(\.\([^.]*\)\)\?\)\?/\5/' "$VERSIONFILE"`
56 if [ "$BLDMINORVERSION" == "" ]; then
57     BLDMINORVERSION=0
58 fi
59 if [ "$BLDVARIANTVERSION" == "" ]; then
60     BLDVARIANTVERSION=0
61 fi
62 SVNOPENSOURCEREVISION=`svn info | grep '^Revision' | sed 's/^Revision: \(.*\)/\1/'`
63
64 BLDNMBR=`cat "$VERSIONFILE"`
65 BLDNMBRSHORT=`cat "$VERSIONFILE"`
66 BUILDER=""
67
68 if [ "$RC_PROJECTSOURCEVERSION" == "" ]; then
69     echo -n "+" >> "$VERSIONFILE"
70     BLDNMBRSHORT=`cat "$VERSIONFILE"`
71     echo -n " " >> "$VERSIONFILE"
72     echo -n `whoami` >> "$VERSIONFILE"
73     echo -n " - " >> "$VERSIONFILE"
74     echo -n `date` >> "$VERSIONFILE"
75     echo -n " - r$SVNOPENSOURCEREVISION" >> "$VERSIONFILE"
76     BLDNMBR=`cat "$VERSIONFILE"`
77 fi
78
79 echo -n '#define __VERSION_TEXT__ "' > "$VERSIONFILE"
80 echo -n $PRODUCTVERSION >> "$VERSIONFILE"
81 echo -n " (" >> "$VERSIONFILE"
82 echo -n $BLDNMBR >> "$VERSIONFILE"
83 echo ')"' >> "$VERSIONFILE"
84 echo -n '#define __BUILD_NUMBER_SHORT__ "' >> "$VERSIONFILE"
85 echo -n $BLDNMBRSHORT >> "$VERSIONFILE"
86 echo '"' >> "$VERSIONFILE"
87
88 echo -n '#define __VERSION_MAJOR__ ' >> "$VERSIONFILE"
89 echo $MAJORVERSION >> "$VERSIONFILE"
90 echo -n '#define __VERSION_MINOR__ ' >> "$VERSIONFILE"
91 echo $MINORVERSION >> "$VERSIONFILE"
92 echo -n '#define __VERSION_TINY__ ' >> "$VERSIONFILE"
93 echo $TINYVERSION >> "$VERSIONFILE"
94
95 echo -n '#define __BUILD_NUMBER_MAJOR__ ' >> "$VERSIONFILE"
96 echo $BLDMAJORVERSION >> "$VERSIONFILE"
97 echo -n '#define __BUILD_NUMBER_MINOR__ ' >> "$VERSIONFILE"
98 echo $BLDMINORVERSION >> "$VERSIONFILE"
99 echo -n '#define __BUILD_NUMBER_VARIANT__ ' >> "$VERSIONFILE"
100 echo $BLDVARIANTVERSION >> "$VERSIONFILE"
101
102 echo -n '#define __SVN_REVISION__ ' >> "$VERSIONFILE"
103 echo $SVNREVISION >> "$VERSIONFILE"