-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.sh
More file actions
executable file
·213 lines (186 loc) · 9.43 KB
/
build.sh
File metadata and controls
executable file
·213 lines (186 loc) · 9.43 KB
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
#!/bin/bash
# Gamesdk build driver script
# Usage:
# ./build.sh
# Builds the gamesdk with Swappy, Tuning Fork and Oboe (no samples)
# ./build.sh samples
# Builds the gamesdk with Swappy and the Swappy samples
# ./build.sh full
# Builds the gamesdk with Swappy, Tuning Fork, Oboe and all samples
set -e # Exit on error
# Set up the environment
export ANDROID_HOME=$(pwd)/../prebuilts/sdk
export ANDROID_NDK_HOME=$(pwd)/../prebuilts/ndk/r23
export BUILDBOT_SCRIPT=true
export BUILDBOT_CMAKE=$(pwd)/../prebuilts/cmake/linux-x86
export PATH="$PATH:$(pwd)/../prebuilts/ninja/linux-x86/"
cp -Rf samples/sdk_licenses ../prebuilts/sdk/licenses
# Use the distribution path given to the script by the build bot in DIST_DIR. Otherwise,
# build in the default location.
if [[ -z $DIST_DIR ]]
then
dist_dir=$(pwd)/../dist
else
dist_dir=$DIST_DIR
fi
if [ "$(uname)" == "Darwin" ]; then
: # Do nothing but skip the next condition so we don't get a bash warning on macos
elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
# Do only for GNU/Linux platform
export JAVA_HOME=$(pwd)/../prebuilts/jdk/jdk11/linux-x86
fi
## Build the Game SDK distribution zip and the zips for Maven AARs
if [[ $1 == "full" ]]
then
package_name=fullsdk
./gradlew packageZip -Plibraries=swappy,tuningfork,game_activity,game_text_input,paddleboat,memory_advice -PincludeSampleSources -PincludeSampleArtifacts -PdistPath="$dist_dir" -PpackageName=$package_name
./gradlew packageMavenZip -Plibraries=swappy -PdistPath="$dist_dir" -PpackageName=$package_name
./gradlew packageMavenZip -Plibraries=tuningfork -PdistPath="$dist_dir" -PpackageName=$package_name
./gradlew packageMavenZip -Plibraries=game_activity -PdistPath="$dist_dir" -PpackageName=$package_name
./gradlew packageMavenZip -Plibraries=game_text_input -PdistPath="$dist_dir" -PpackageName=$package_name
./gradlew packageMavenZip -Plibraries=paddleboat -PdistPath="$dist_dir" -PpackageName=$package_name
./gradlew packageMavenZip -Plibraries=memory_advice -PdistPath="$dist_dir" -PpackageName=$package_name
./gradlew jetpadJson -Plibraries=swappy,tuningfork,game_activity,game_text_input,paddleboat,memory_advice -PdistPath="$dist_dir" -PpackageName=$package_name
elif [[ $1 == "samples" ]]
then
package_name=gamesdk
./gradlew packageZip -Plibraries=swappy -PincludeSampleSources -PincludeSampleArtifacts -PdistPath="$dist_dir"
./gradlew packageMavenZip -Plibraries=swappy -PdistPath="$dist_dir"
elif [[ $1 == "maven-only" ]]
then
# Only the Maven artifacts for Jetpack
package_name=gamesdk-maven
./gradlew packageMavenZip -Plibraries=swappy -PdistPath="$dist_dir" -PpackageName=$package_name
./gradlew packageMavenZip -Plibraries=tuningfork -PdistPath="$dist_dir" -PpackageName=$package_name
./gradlew packageMavenZip -Plibraries=game_activity -PdistPath="$dist_dir" -PpackageName=$package_name
./gradlew packageMavenZip -Plibraries=game_text_input -PdistPath="$dist_dir" -PpackageName=$package_name
./gradlew packageMavenZip -Plibraries=paddleboat -PdistPath="$dist_dir" -PpackageName=$package_name
./gradlew packageMavenZip -Plibraries=memory_advice -PdistPath="$dist_dir" -PpackageName=$package_name
./gradlew jetpadJson -Plibraries=swappy,tuningfork,game_activity,game_text_input,paddleboat,memory_advice -PdistPath="$dist_dir" -PpackageName=$package_name
elif [[ $1 == "tests" ]]
then
package_name=gamesdk-tests
./gradlew :game-controller:connectedAndroidTest -Plibraries=paddleboat -PincludeSampleSources -PincludeSampleArtifacts -PdistPath="$dist_dir" -PpackageName=$package_name
# ./gradlew :game-frame-pacing:connectedAndroidTest -Plibraries=swappy -PincludeSampleSources -PincludeSampleArtifacts -PdistPath="$dist_dir" -PpackageName=$package_name
./gradlew :game-text-input:connectedAndroidTest -Plibraries=game_text_input,game_activity -PincludeSampleSources -PincludeSampleArtifacts -PdistPath="$dist_dir" -PpackageName=$package_name
exit
else
# The default is to build the express zip
package_name=gamesdk-express
./gradlew packageZip -Plibraries=swappy,tuningfork,game_activity,game_text_input,paddleboat,memory_advice -PincludeSampleSources -PincludeSampleArtifacts -PdistPath="$dist_dir" -PpackageName=$package_name
./gradlew packageMavenZip -Plibraries=swappy -PdistPath="$dist_dir" -PpackageName=$package_name
./gradlew packageMavenZip -Plibraries=tuningfork -PdistPath="$dist_dir" -PpackageName=$package_name
./gradlew packageMavenZip -Plibraries=game_activity -PdistPath="$dist_dir" -PpackageName=$package_name
./gradlew packageMavenZip -Plibraries=game_text_input -PdistPath="$dist_dir" -PpackageName=$package_name
./gradlew packageMavenZip -Plibraries=paddleboat -PdistPath="$dist_dir" -PpackageName=$package_name
./gradlew packageMavenZip -Plibraries=memory_advice -PdistPath="$dist_dir" -PpackageName=$package_name
./gradlew jetpadJson -Plibraries=swappy,tuningfork,game_activity,game_text_input,paddleboat,memory_advice -PdistPath="$dist_dir" -PpackageName=$package_name
fi
if [[ $1 != "maven-only" ]]
then
mkdir -p "$dist_dir/$package_name/apks/samples"
mkdir -p "$dist_dir/$package_name/apks/test"
mkdir -p "$dist_dir/$package_name/apks/tools"
# Add the tuningfork samples and apks into the Game SDK distribution zip
pushd ./samples/tuningfork/insightsdemo/
./gradlew ":app:assembleDebug"
popd
pushd ./samples/tuningfork/experimentsdemo/
./gradlew ":app:assembleDebug"
popd
# Add tuningfork monitor app
pushd ./games-performance-tuner/tools/TuningForkMonitor/
./gradlew ":app:assembleDebug"
popd
# Add the swappy samples
pushd samples/bouncyball
./gradlew ":app:assembleDebug"
popd
pushd third_party/cube
./gradlew ":app:assembleDebug"
popd
# Add the memory_advice samples
pushd samples/memory_advice/hogger/
./gradlew ":app:assembleDebug"
popd
# Add the game controller samples
pushd samples/game_controller/
mkdir -p ./third-party
pushd third-party
if [ ! -d "imgui" ] ; then
git clone https://github.com/ocornut/imgui -b v1.89
fi
popd
popd
pushd samples/game_controller/gameactivity
./gradlew ":app:assembleDebug"
popd
pushd samples/game_controller/nativeactivity
./gradlew ":app:assembleDebug"
popd
pushd samples/agdktunnel/third-party/glm
if [ ! -d "glm" ] ; then
git clone https://github.com/g-truc/glm.git
fi
popd
pushd samples/agdktunnel/
./gradlew ":app:assembleDebug"
popd
# Add the game text input samples
pushd samples/game_text_input/game_text_input_testbed
./gradlew ":app:assembleDebug"
popd
cp samples/tuningfork/insightsdemo/app/build/outputs/apk/debug/app-debug.apk \
"$dist_dir/$package_name/apks/samples/insightsdemo.apk"
cp samples/tuningfork/experimentsdemo/app/build/outputs/apk/debug/app-debug.apk \
"$dist_dir/$package_name/apks/samples/experimentsdemo.apk"
cp games-performance-tuner/tools/TuningForkMonitor/app/build/outputs/apk/debug/app-debug.apk \
"$dist_dir/$package_name/apks/tools/tuningforkmonitor.apk"
cp samples/game_controller/nativeactivity/app/build/outputs/apk/debug/app-debug.apk \
"$dist_dir/$package_name/apks/samples/game_controller_nativeactivity.apk"
cp samples/game_controller/gameactivity/app/build/outputs/apk/debug/app-debug.apk \
"$dist_dir/$package_name/apks/samples/game_controller_gameactivity.apk"
cp samples/bouncyball/app/build/outputs/apk/debug/app-debug.apk \
"$dist_dir/$package_name/apks/samples/bouncyball.apk"
cp third_party/cube/app/build/outputs/apk/debug/app-debug.apk \
"$dist_dir/$package_name/apks/samples/cube.apk"
cp samples/memory_advice/hogger/app/build/outputs/apk/debug/app-debug.apk \
"$dist_dir/$package_name/apks/samples/hogger.apk"
cp samples/agdktunnel/app/build/outputs/apk/debug/app-debug.apk \
"$dist_dir/$package_name/apks/samples/agdktunnel.apk"
cp samples/game_text_input/game_text_input_testbed/app/build/outputs/apk/debug/app-debug.apk \
"$dist_dir/$package_name/apks/samples/game_text_input.apk"
pushd $dist_dir/$package_name
if [[ -z "$(ls -1 agdk-libraries-*.zip 2>/dev/null | grep agdk)" ]] ; then
echo 'Could not find the zip "agdk-libraries-*.zip".'
exit
fi
zip -ur agdk-libraries-*.zip "apks/samples/insightsdemo.apk"
zip -ur agdk-libraries-*.zip "apks/samples/experimentsdemo.apk"
zip -ur agdk-libraries-*.zip "apks/tools/tuningforkmonitor.apk"
zip -ur agdk-libraries-*.zip "apks/samples/game_controller_nativeactivity.apk"
zip -ur agdk-libraries-*.zip "apks/samples/game_controller_gameactivity.apk"
zip -ur agdk-libraries-*.zip "apks/samples/bouncyball.apk"
zip -ur agdk-libraries-*.zip "apks/samples/cube.apk"
zip -ur agdk-libraries-*.zip "apks/samples/hogger.apk"
zip -ur agdk-libraries-*.zip "apks/samples/agdktunnel.apk"
zip -ur agdk-libraries-*.zip "apks/samples/game_text_input.apk"
popd
fi
# Calculate hash of the zip file
pushd "$dist_dir/$package_name"
for ZIPNAME in agdk-libraries-*
do
if [[ -e $ZIPNAME ]]
then
sha256sum $ZIPNAME > $ZIPNAME.sha256
fi
break
done
popd
pushd "$dist_dir/$package_name"
# Remove intermediate files that would be very costly to store
rm -rf libs prefab
# Remove other files that we don't care about and are polluting the output
rm -rf external third_party src include samples aar
popd