-
Notifications
You must be signed in to change notification settings - Fork 36
/
build.sh
executable file
·88 lines (81 loc) · 2.33 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
#!/bin/bash
set -e
source dependencies/config_directories.sh
pushd build &>/dev/null
while getopts p: flag; do
case "${flag}" in
p)
shift 2
platform=${OPTARG}
;;
\?) help ;;
esac
done
help() {
echo build.sh - build debug library
echo build.sh clean - clean the build
echo build.sh release - build release library
echo build.sh -p ios release - build release ios library
echo build.sh -p ios_sim release - build release ios simulator library
echo build.sh -p android release - build release android library
exit 1
}
# make sure argument is lowercase
OPTION="$(echo "$1" | tr '[A-Z]' '[a-z]')"
if [ "$OPTION" = 'help' ]; then
help
else
build() {
echo "Building Rive for platform=$platform option=$OPTION"
echo premake5 gmake2 --with_rive_text --with_rive_audio=system --with_rive_layout "$1"
PREMAKE="premake5 gmake2 --with_rive_text --with_rive_audio=system --with_rive_layout $1"
eval "$PREMAKE"
if [ "$OPTION" = "clean" ]; then
make clean
make clean config=release
elif [ "$OPTION" = "release" ]; then
make config=release -j7
else
make config=debug -j7
fi
}
case $platform in
ios)
echo "Building for iOS"
export IOS_SYSROOT=$(xcrun --sdk iphoneos --show-sdk-path)
build "--os=ios"
if [ "$OPTION" = "clean" ]; then
exit
fi
;;
ios_sim)
export IOS_SYSROOT=$(xcrun --sdk iphonesimulator --show-sdk-path)
build "--os=ios --variant=emulator"
if [ "$OPTION" = "clean" ]; then
exit
fi
;;
# Android supports ABIs via a custom platform format:
# e.g. 'android.x86', 'android.x64', etc.
android*)
echo "Building for ${platform}"
# Extract ABI from this opt by splitting on '.' character
# e.g. android.x86
IFS="." read -ra strarr <<<"$platform"
ARCH=${strarr[1]}
build "--os=android --arch=${ARCH}"
;;
macosx)
echo "Building for macos"
export MACOS_SYSROOT=$(xcrun --sdk macosx --show-sdk-path)
build "--os=macosx --variant=runtime"
if [ "$OPTION" = "clean" ]; then
exit
fi
;;
*)
build
;;
esac
fi
popd &>/dev/null