Skip to content

Commit 7dbf39d

Browse files
committed
change scripts to build for all libname and all arch type
1 parent 8fa9a0e commit 7dbf39d

File tree

3 files changed

+91
-88
lines changed

3 files changed

+91
-88
lines changed

build/ios/build.sh

Lines changed: 89 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,28 @@ while [ "$1" != "" ]; do
5252
shift
5353
done
5454

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+
5577
function contains() {
5678
local n=$#
5779
local value=${!n}
@@ -65,8 +87,8 @@ function contains() {
6587
return 1
6688
}
6789

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")
7092

7193
# 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.
7294
if [ $build_arches = "all" ]; then
@@ -77,7 +99,7 @@ fi
7799

78100
if [ $build_library = "all" ]; then
79101
# 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")
81103
else
82104
build_library=(${build_library//,/ })
83105
fi
@@ -120,102 +142,83 @@ if [ $build_mode != "release" ] && [ $build_mode != "debug" ]; then
120142
fi
121143

122144

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-
137145

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"
167152

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
171157

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)
176159

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
180163

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
182165

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+
}
186170

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/../..
191179

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
195184

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
197191

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
201195

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
202204

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
206207

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
212216

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
217221

222+
create_fat_library $library_name
218223

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

contrib/build_ios.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ info "Using ${ARCH} with SDK version ${SDK_VERSION}"
108108

109109
THIS_SCRIPT_PATH=`pwd`
110110

111-
COCOSROOT=`pwd`/../
111+
COCOSROOT=`pwd`/../../
112112

113113
if test -z "$SDKROOT"
114114
then

contrib/build_ios_without_export.h renamed to contrib/build_ios_without_export.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ info "Using ${ARCH} with SDK version ${SDK_VERSION}"
108108

109109
THIS_SCRIPT_PATH=`pwd`
110110

111-
COCOSROOT=`pwd`/../
111+
COCOSROOT=`pwd`/../..
112112

113113
if test -z "$SDKROOT"
114114
then

0 commit comments

Comments
 (0)