@@ -52,6 +52,28 @@ while [ "$1" != "" ]; do
52
52
shift
53
53
done
54
54
55
+ if test -z " $build_arches "
56
+ then
57
+ echo " You must speficy a valid arch option"
58
+ usage
59
+ exit 1
60
+ fi
61
+
62
+ if test -z " $build_library "
63
+ then
64
+ echo " You must specify a valid library option"
65
+ usage
66
+ exit 1
67
+ fi
68
+
69
+ if test -z " $build_mode "
70
+ then
71
+ echo " You must specify a valid mode option"
72
+ usage
73
+ exit 1
74
+ fi
75
+
76
+
55
77
function contains() {
56
78
local n=$#
57
79
local value=${! n}
@@ -65,8 +87,8 @@ function contains() {
65
87
return 1
66
88
}
67
89
68
- all_arches=(" armv7" " arm64" " i386" " x86_64" )
69
- all_libraries=(" png" " zlib" )
90
+ all_arches=(" armv7" " arm64" " i386" " x86_64" " armv7s " )
91
+ all_libraries=(" png" " zlib" " lua " " luajit " " websockets " " curl " " box2d " " chipmunk " " freetype2 " " jpeg " " protobuf " " tiff " " webp " )
70
92
71
93
# TODO: we only build a fat library with armv7, arm64, i386 and x86_64 arch. If you want to build armv7s into the fat lib, please add it into the following array.
72
94
if [ $build_arches = " all" ]; then
77
99
78
100
if [ $build_library = " all" ]; then
79
101
# TODO: more libraries need to be added here
80
- declare -a build_library=(" png" " zlib" )
102
+ declare -a build_library=(" png" " zlib" " lua " " luajit " " websockets " " curl " " box2d " " chipmunk " " freetype2 " " jpeg " " protobuf " " tiff " " webp " )
81
103
else
82
104
build_library=(${build_library// ,/ } )
83
105
fi
@@ -120,102 +142,83 @@ if [ $build_mode != "release" ] && [ $build_mode != "debug" ]; then
120
142
fi
121
143
122
144
123
- for arch in " ${build_arches[@]} "
124
- do
125
- echo $arch
126
- done
127
-
128
- for lib in " ${build_library[@]} "
129
- do
130
- echo $lib
131
- done
132
-
133
- echo " build mode is $build_mode "
134
-
135
- exit
136
-
137
145
138
- current_dir=` pwd`
139
- library_name=png
140
- rm -rf $library_name
141
- # build for armv7
142
- arch=armv7
143
- ./build.sh -a $arch -l $library_name
144
- top_dir=$current_dir /../..
145
-
146
- cd $current_dir
147
- mkdir -p $library_name /prebuilt/
148
- mkdir -p $library_name /include/
149
-
150
- cp $top_dir /contrib/install-ios-OS/$arch /lib/lib$library_name .a $library_name /prebuilt/lib$library_name -$arch .a
151
- cp -r $top_dir /contrib/install-ios-Os/$arch /include/png* .h $library_name /include/
152
-
153
- echo " cleaning up"
154
- rm -rf $top_dir /contrib/install-ios-OS
155
- rm -rf $top_dir /contrib/iPhoneOS-$arch
156
-
157
- # build for i386
158
- arch=i386
159
- ./build.sh -s -a $arch -l $library_name
160
- top_dir=$current_dir /../..
161
-
162
- cd $current_dir
163
- mkdir -p $library_name /prebuilt/
164
- mkdir -p $library_name /include/
165
-
166
- cp $top_dir /contrib/install-ios-Simulator/$arch /lib/lib${library_name} .a $library_name /prebuilt/lib$library_name -$arch .a
146
+ function create_fat_library()
147
+ {
148
+ library_name=$1
149
+ # strip & create fat library
150
+ LIPO=" xcrun -sdk iphoneos lipo"
151
+ STRIP=" xcrun -sdk iphoneos strip"
167
152
168
- echo " cleaning up"
169
- rm -rf $top_dir /contrib/install-ios-Simulator
170
- rm -rf $top_dir /contrib/iPhoneSimulator-$arch
153
+ if [ -f $library_name /prebuilt/lib$library_name .a ]; then
154
+ echo " removing old fat library..."
155
+ rm $library_name /prebuilt/lib$library_name .a
156
+ fi
171
157
172
- # build for x86_64
173
- arch=x86_64
174
- ./build.sh -s -a $arch -l $library_name
175
- top_dir=$current_dir /../..
158
+ all_static_libs=$( find $library_name /prebuilt -type f)
176
159
177
- cd $current_dir
178
- mkdir -p $library_name /prebuilt/
179
- mkdir -p $library_name /include/
160
+ echo " create fat library lib $library_name for $all_static_libs "
161
+ $LIPO -create $all_static_libs \
162
+ -output $library_name /prebuilt/lib $library_name .a
180
163
181
- cp $top_dir /contrib/install-ios-Simulator/ $arch /lib/lib ${library_name} .a $library_name /prebuilt/lib $library_name - $arch .a
164
+ rm $all_static_libs
182
165
183
- echo " cleaning up"
184
- rm -rf $top_dir /contrib/install-ios-Simulator/
185
- rm -rf $top_dir /contrib/iPhoneSimulator-$arch
166
+ # remove debugging info
167
+ $STRIP -S $library_name /prebuilt/lib$library_name .a
168
+ $LIPO -info $library_name /prebuilt/lib$library_name .a
169
+ }
186
170
187
- # build for arm64
188
- arch=arm64
189
- ./build.sh -a $arch -l $library_name
190
- top_dir=$current_dir /../..
171
+ # build all the libraries for different arches
172
+ for lib in " ${build_library[@]} "
173
+ do
174
+ library_name=$lib
175
+ current_dir=` pwd`
176
+ mkdir -p $library_name /prebuilt/
177
+ mkdir -p $library_name /include/
178
+ top_dir=$current_dir /../..
191
179
192
- cd $current_dir
193
- mkdir -p $library_name /prebuilt/
194
- mkdir -p $library_name /include/
180
+ build_script_name=" build_ios.sh"
181
+ if [ $lib = " luajit" ]; then
182
+ build_script_name=" build_ios_without_export.sh"
183
+ fi
195
184
196
- cp $top_dir /contrib/install-ios-OS/$arch /lib/lib${library_name} .a $library_name /prebuilt/lib$library_name -$arch .a
185
+ for arch in " ${build_arches[@]} "
186
+ do
187
+ # skip certain arch libraries
188
+ if [ $lib = " luajit" ] && [ $arch = " arm64" ]; then
189
+ continue
190
+ fi
197
191
198
- echo " cleaning up "
199
- rm -rf $top_dir /contrib/install-ios-OS
200
- rm -rf $top_dir /contrib/iPhoneOS- $arch
192
+ if [ $lib = " luajit " ] && [ $arch = " x86_64 " ] ; then
193
+ continue
194
+ fi
201
195
196
+ is_simulator=" "
197
+ install_library_path=" install-ios-OS"
198
+ build_library_path=" iPhoneOS"
199
+ if [ $arch = " i386" ] || [ $arch = " x86_64" ]; then
200
+ is_simulator=" -s"
201
+ install_library_path=" install-ios-Simulator"
202
+ build_library_path=" iPhoneSimulator"
203
+ fi
202
204
203
- # strip & create fat library
204
- LIPO=" xcrun -sdk iphoneos lipo"
205
- STRIP=" xcrun -sdk iphoneos strip"
205
+ echo " build $arch for $lib "
206
+ $top_dir /contrib/$build_script_name $is_simulator -a $arch -l $library_name
206
207
207
- $LIPO -create $library_name /prebuilt/lib$library_name -armv7.a \
208
- $library_name /prebuilt/lib$library_name -i386.a \
209
- $library_name /prebuilt/lib$library_name -arm64.a \
210
- $library_name /prebuilt/lib$library_name -x86_64.a \
211
- -output $library_name /prebuilt/lib$library_name .a
208
+ cp $top_dir /contrib/$install_library_path /$arch /lib/lib$library_name .a $library_name /prebuilt/lib$library_name -$arch .a
209
+ cp $top_dir /contrib/$install_library_path /$arch /lib/lib$library_name * .a $library_name /prebuilt/lib$library_name -$arch .a
210
+ if [ " $( ls -A $library_name /include/) " ]; then
211
+ echo " Header files are already exists. No need to copy..."
212
+ else
213
+ echo " Copying needed heder files"
214
+ cp -r $top_dir /contrib/$install_library_path /$arch /include/* .* $library_name /include/
215
+ fi
212
216
213
- rm $library_name /prebuilt/lib $library_name -armv7.a
214
- rm $library_name /prebuilt/lib $library_name -i386.a
215
- rm $library_name /prebuilt/lib $library_name -arm64.a
216
- rm $library_name /prebuilt/lib $library_name -x86_64.a
217
+ echo " cleaning up "
218
+ rm -rf $top_dir /contrib/ $install_library_path
219
+ rm -rf $top_dir /contrib/ $build_library_path - $arch
220
+ done
217
221
222
+ create_fat_library $library_name
218
223
219
- # remove debugging info
220
- $STRIP -S $library_name /prebuilt/lib$library_name .a
221
- $LIPO -info $library_name /prebuilt/lib$library_name .a
224
+ done
0 commit comments