Merge pull request #4680 from MartijnKaijser/13.1_b1
[vuplus_xbmc] / tools / buildsteps / defaultenv
1 BUILDTHREADS=${BUILDTHREADS:-1}
2 SDK_VERSION=${SDK_VERSION:-"Default"}
3 Configuration=${Configuration:-"Default"}
4 XBMC_DEPENDS_ROOT=${XBMC_DEPENDS_ROOT:-"Default"}
5 PATH_CHANGE_REV_FILENAME=".last_success_revision"
6 #TARBALLS ENV-VAR is only used by android scripts atm
7 TARBALLS=${TARBALLS:-"/opt/xbmc-tarballs"}
8
9 #set platform defaults
10 #$XBMC_PLATFORM_DIR matches the platform subdirs!
11 case $XBMC_PLATFORM_DIR in
12   atv2)
13     DEFAULT_SDK_VERSION=4.2
14     DEFAULT_XBMC_DEPENDS_ROOT=$WORKSPACE/tools/depends/xbmc-depends
15     DEFAULT_CONFIGURATION="Debug"
16     ;;
17
18   ios)
19     DEFAULT_SDK_VERSION=4.2
20     DEFAULT_XBMC_DEPENDS_ROOT=$WORKSPACE/tools/depends/xbmc-depends
21     DEFAULT_CONFIGURATION="Debug"
22     ;;
23
24   osx32)
25     DEFAULT_SDK_VERSION=10.8
26     DEFAULT_XBMC_DEPENDS_ROOT=$WORKSPACE/tools/depends/xbmc-depends
27     DEFAULT_CONFIGURATION="Debug"
28     ;;
29
30   osx64)
31     DEFAULT_SDK_VERSION=10.8
32     DEFAULT_XBMC_DEPENDS_ROOT=$WORKSPACE/tools/depends/xbmc-depends
33     DEFAULT_CONFIGURATION="Debug"
34     ;;
35
36   android)
37     DEFAULT_SDK_VERSION="Default"
38     DEFAULT_XBMC_DEPENDS_ROOT=$WORKSPACE/tools/depends/xbmc-depends
39     DEFAULT_CONFIGURATION="Debug"
40     ;;
41
42   linux*)
43     DEFAULT_XBMC_DEPENDS_ROOT=$WORKSPACE/tools/depends/xbmc-depends
44     DEFAULT_CONFIGURATION="Debug"
45   ;;
46
47   rbpi)
48     JENKINS_RBPI_DEVENV=/home/jenkins/rbpi-dev
49     DEFAULT_XBMC_DEPENDS_ROOT=$WORKSPACE/tools/depends/xbmc-depends
50     DEFAULT_CONFIGURATION="Debug"
51   ;;
52 esac
53
54 if [ "$SDK_VERSION" == "Default" ]
55 then
56   SDK_VERSION=$DEFAULT_SDK_VERSION
57 fi
58
59 if [ "$XBMC_DEPENDS_ROOT" == "Default" ]
60 then
61   XBMC_DEPENDS_ROOT=$DEFAULT_XBMC_DEPENDS_ROOT
62 fi
63
64 if [ "$Configuration" == "Default" ]
65 then
66   Configuration=$DEFAULT_CONFIGURATION
67 fi
68
69 #clamp release builds to 1 thread only
70 if [ "$Configuration" == "Release" ]
71 then
72   BUILDTHREADS=1
73 fi
74
75 #helper functions
76
77 #hash a dir based on the git revision, SDK_PATH, NDK_PATH, SDK_VERSION, TOOLCHAIN TOOLCHAIN_X86 (for droidx86) and XBMC_DEPENDS_ROOT
78 function getBuildHash ()
79 {
80   local checkPath
81   checkPath="$1"
82   local hashStr
83   hashStr="$(git rev-list HEAD --max-count=1  -- $checkPath)"
84   hashStr="$hashStr $SDK_PATH $NDK_PATH $SDK_VERSION $TOOLCHAIN $TOOLCHAIN_X86 $XBMC_DEPENDS_ROOT"
85   echo $hashStr
86 }
87
88 function pathChanged ()
89 {
90   local ret
91   local checkPath
92   ret="0"
93   #no optims in release builds!
94   if [ "$Configuration" == "Release" ]
95   then
96     echo "1"
97     return
98   fi
99
100   checkPath="$1"
101   if [ -e $checkPath/$PATH_CHANGE_REV_FILENAME ]
102   then
103     if [ "$(cat $checkPath/$PATH_CHANGE_REV_FILENAME)" != "$(getBuildHash $WORKSPACE/tools/depends)" ]
104     then
105       ret="1"
106     fi
107   else
108     ret="1"
109   fi
110   
111   echo $ret
112 }
113
114 function tagSuccessFulBuild ()
115 {
116   local checkPath
117   checkPath="$1"
118   echo "$(getBuildHash $checkPath)" > $checkPath/$PATH_CHANGE_REV_FILENAME
119 }
120
121 function getBranchName ()
122 {
123   local branchName
124   branchName=`git symbolic-ref HEAD 2>/dev/null || echo detached`
125
126   if [ "$branchName" != "detached" ] # if we are not detached
127   then
128     #we are attached - use the branchname then
129     if echo $branchName | grep pr 2>&1 > /dev/null
130     then
131       #if this is a pull request branch - fetch the pr number and prefix with "PR"
132       #refs/heads/number/head
133       echo PR$(echo $branchName | awk '{gsub(".*/pr/","");print $1}' | awk '{gsub("/.*","");print $1}')
134     else
135       #if we are on a normal branch - fetch branchname
136       #refs/heads/branchname
137       echo $branchName | awk '{gsub(".*/","");print $1}'
138     fi
139   else
140     #if we are in detached head state
141     #fetch the first non-pullrequest branch we can find with HEAD
142     git branch -r --contains HEAD | sed "/origin\/pr\//d" | head -n1 | awk '{gsub(".*/","");print $1}'
143   fi
144 }
145
146 function getBuildRevDateStr ()
147 {
148   local revStr
149   #fetch date-rev
150   revStr=`git --no-pager log --abbrev=7 -n 1 --pretty=format:"%h %ci" HEAD | awk '{gsub("-", "");print $2"-"$1}' 2>/dev/null`
151   if [ "$?" == "0" ]
152   then
153     #fetch the first branch containing head
154     revStr=$revStr"-"$(getBranchName)
155     if [ "$?" == "0" ]
156     then
157       echo $revStr
158     else
159       echo "Unknown"
160     fi
161   else
162     echo "Unknown"
163   fi
164 }