Skip to content

Commit 102121c

Browse files
authored
Merge pull request #191 from firebase/version_workflow
make iOS build fat lib
2 parents f177ce8 + 131a5f0 commit 102121c

File tree

1 file changed

+84
-10
lines changed

1 file changed

+84
-10
lines changed

build_ios.sh

Lines changed: 84 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,90 @@
1616
#
1717
# Builds and runs the tests, meant to be used on a bash environment.
1818

19+
usage(){
20+
echo "Usage: $0 [options]
21+
options:
22+
-b, build path default: ios_unity
23+
-s, source path default: .
24+
-p, framework platform default: ${SUPPORTED_PLATFORMS[@]}
25+
-a, framework architecture default: ${SUPPORTED_ARCHITECTURES[@]}
26+
-c, cmake extra default: ""
27+
example:
28+
build_scripts/ios/build.sh -b ios_build -s . -a arm64"
29+
}
30+
31+
set -e
32+
33+
readonly SUPPORTED_PLATFORMS=(device) # simulator) only support device arch for now
34+
readonly SUPPORTED_ARCHITECTURES="arm64;armv7" #;x86_64;i386" only support device arch for now
35+
#readonly DEVICE_ARCHITECTURES="arm64;armv7" only support device arch for now
36+
#readonly SIMULATOR_ARCHITECTURES="arm64;x86_64;i386" only support device arch for now
37+
38+
# build default value
39+
buildpath="ios_unity"
40+
sourcepath="."
41+
platforms=("${SUPPORTED_PLATFORMS[@]}")
42+
cmake_extra=""
43+
1944
# Enable utf8 output
2045
export LANG=en_US.UTF-8
2146

47+
# check options
48+
IFS=',' # split options on ',' characters
49+
while getopts "hb:s:p:a:c:" opt; do
50+
case $opt in
51+
h)
52+
usage
53+
exit 0
54+
;;
55+
b)
56+
buildpath=$OPTARG
57+
;;
58+
s)
59+
sourcepath=$OPTARG
60+
if [[ ! -d "${sourcepath}" ]]; then
61+
echo "Source path ${sourcepath} not found."
62+
exit 2
63+
fi
64+
;;
65+
p)
66+
platforms=($OPTARG)
67+
for platform in ${platforms[@]}; do
68+
if [[ ! " ${SUPPORTED_PLATFORMS[@]} " =~ " ${platform} " ]]; then
69+
echo "invalid platform: ${platform}"
70+
echo "Supported platforms are: ${SUPPORTED_PLATFORMS[@]}"
71+
exit 2
72+
fi
73+
done
74+
;;
75+
a)
76+
architectures=($OPTARG)
77+
for arch in ${architectures[@]}; do
78+
if [[ ! " ${SUPPORTED_ARCHITECTURES[@]} " =~ " ${arch} " ]]; then
79+
echo "invalid architecture: ${arch}"
80+
echo "Supported architectures are: ${SUPPORTED_ARCHITECTURES[@]}"
81+
exit 2
82+
fi
83+
done
84+
;;
85+
c)
86+
cmake_extra=$OPTARG
87+
;;
88+
*)
89+
echo "unknown parameter"
90+
exit 2
91+
;;
92+
esac
93+
done
94+
echo "*********************** Build Unity iOS SDK *******************************"
95+
echo "build path: ${buildpath}"
96+
echo "source path: ${sourcepath}"
97+
echo "build platforms: ${platforms[@]}"
98+
echo "cmake extras: ${cmake_extra}"
99+
echo "***************************************************************************"
100+
sourcepath=$(cd ${sourcepath} && pwd) #full path
101+
buildpath=$(mkdir -p ${buildpath} && cd ${buildpath} && pwd) #full path
102+
22103
# Stop display commands being run.
23104
set +x
24105

@@ -42,23 +123,16 @@ CMAKE_OPTIONS="${CMAKE_OPTIONS} -DUNITY_ROOT_DIR=${UNITY_ROOT_DIR}"
42123
CMAKE_OPTIONS="${CMAKE_OPTIONS} -DFIREBASE_UNITY_BUILD_TESTS=ON"
43124
CMAKE_OPTIONS="${CMAKE_OPTIONS} -DFIREBASE_CPP_BUILD_STUB_TESTS=ON" # enable a stub gtest target to get abseil-cpp working.
44125

45-
printf "#################################################################\n"
46-
date
47-
printf "Building config 'unity' on platform 'ios' with option ''.\n"
48-
printf "#################################################################\n"
49-
50-
DIR=ios_unity
51-
52126
# Display commands being run.
53127
set -x
54128

55129
# Make a directory to work in (if doesn't exist)
56-
mkdir -p "$DIR"
130+
mkdir -p "$buildpath"
57131

58-
pushd "$DIR"
132+
pushd "$buildpath"
59133

60134
# Configure cmake with option value
61-
cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/unity_ios.cmake .. ${CMAKE_OPTIONS}
135+
cmake ${sourcepath} -DCMAKE_TOOLCHAIN_FILE=${sourcepath}/cmake/unity_ios.cmake -DCMAKE_OSX_ARCHITECTURES=$SUPPORTED_ARCHITECTURES ${CMAKE_OPTIONS} ${cmake_extra}
62136
check_exit_code $?
63137

64138
# Build the SDK

0 commit comments

Comments
 (0)