forked from moai/moai-dev
/
build.sh
executable file
·105 lines (91 loc) · 3.04 KB
/
build.sh
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
#!/bin/bash
#----------------------------------------------------------------#
# Copyright (c) 2010-2011 Zipline Games, Inc.
# All Rights Reserved.
# http://getmoai.com
#----------------------------------------------------------------#
set -e
osx_schemes=( "libmoai-osx" "libmoai-osx-3rdparty" "libmoai-osx-fmod-ex" "libmoai-osx-luaext" "libmoai-osx-untz" "libmoai-osx-zlcore" )
osx_sdks=( "macosx" )
osx_architectures=( "i386" )
ios_schemes=( "libmoai-ios" "libmoai-ios-3rdparty" "libmoai-ios-facebook" "libmoai-ios-fmod-ex" "libmoai-ios-luaext" "libmoai-ios-tapjoy" "libmoai-ios-untz" "libmoai-ios-zlcore" )
ios_sdks=( "iphoneos" "iphonesimulator" )
ios_architectures=( "i386" "armv6" "armv7" )
usage="usage: $0 [-j <jobName>] [-c Debug|Release|all] [-p osx|ios|all]"
job="moai"
configurations="all"
platforms="all"
while [ $# -gt 0 ]; do
case "$1" in
-j) job="$2"; shift;;
-c) configurations="$2"; shift;;
-p) platforms="$2"; shift;;
-*)
echo >&2 \
$usage
exit 1;;
*) break;;
esac
shift
done
if ! [[ $job =~ ^[a-zA-Z0-9_\-]+$ ]]; then
echo -e "*** Illegal job name specified: $job..."
echo -e " > Job names may only contain letters, numbers, dashes and underscores"
echo
exit 1
fi
if [ x"$configurations" != xDebug ] && [ x"$configurations" != xRelease ] && [ x"$configurations" != xall ]; then
echo $usage
exit 1
elif [ x"$configurations" = xall ]; then
configurations="Debug Release"
fi
if [ x"$platforms" != xosx ] && [ x"$platforms" != xios ] && [ x"$platforms" != xall ]; then
echo $usage
exit 1
elif [ x"$platforms" = xall ]; then
platforms="osx ios"
fi
for platform in $platforms; do
schemes=
sdks=
architectures=
if [ x"$platform" = xosx ]; then
schemes="${osx_schemes[@]}"
sdks="${osx_sdks[@]}"
architectures="${osx_architectures[@]}"
elif [ x"$platform" = xios ]; then
schemes="${ios_schemes[@]}"
sdks="${ios_sdks[@]}"
architectures="${ios_architectures[@]}"
fi
for config in $configurations; do
for sdk in $sdks; do
for scheme in $schemes; do
echo "Building libmoai/$scheme/$sdk for $platform $config"
xcodebuild -configuration $config -workspace libmoai.xcodeproj/project.xcworkspace -scheme $scheme -sdk $sdk build CONFIGURATION_BUILD_DIR=/tmp/$job/$platform/$scheme/$sdk/$config
echo "Done. Binaries available in /tmp/$job/$platform/$scheme/$sdk/$config"
done
done
done
for config in $configurations; do
rm -rf "/tmp/$job/$platform/$config/universal"
mkdir -p "/tmp/$job/$platform/$config/universal"
for scheme in $schemes; do
libs=
for sdk in $sdks; do
libs="$libs /tmp/$job/$platform/$scheme/$sdk/$config/$scheme.a"
done
lipo -create -output "/tmp/$job/$platform/$config/universal/$scheme.a" $libs
done
done
for config in $configurations; do
for arch in $architectures; do
rm -rf "/tmp/$job/$platform/$config/$arch"
mkdir -p "/tmp/$job/$platform/$config/$arch"
for scheme in $schemes; do
lipo -thin $arch -output "/tmp/$job/$platform/$config/$arch/$scheme.a" "/tmp/$job/$platform/$config/universal/$scheme.a"
done
done
done
done