Skip to content

Commit 45061e5

Browse files
author
az
committed
1.finish ios shell script on openssl, curl, nghttp2; 2.optimization android scripts
1 parent b9f448b commit 45061e5

File tree

10 files changed

+462
-343
lines changed

10 files changed

+462
-343
lines changed

script/android-common.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,9 @@ function android_set_cpu_feature() {
154154
export LDFLAGS="-march=x86-64 -Wl,--gc-sections -Os -ffunction-sections -fdata-sections $(android_get_common_linked_libraries ${api} ${arch})"
155155
export CPPFLAGS=${CFLAGS}
156156
;;
157+
*)
158+
common_die "not support $arch"
159+
;;
157160
esac
158161
}
159162

script/android-curl.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ function android_curl_pre_tool_check() {
5858
curl_zip_file_path="${curl_input_dir}/${curl_zip_file}"
5959
curl_zip_file_no_suffix_path="${curl_input_dir}/${curl_zip_file_no_suffix}"
6060

61-
mkdir -p "${curl_input_dir}"
62-
mkdir -p "${curl_output_dir}"
61+
util_create_dir "${curl_input_dir}"
62+
util_create_dir "${curl_output_dir}"
6363

6464
android_curl_printf_variable
6565

@@ -82,8 +82,8 @@ function android_curl_build_config_make() {
8282
export ANDROID_NDK_HOME=${ANDROID_NDK_ROOT}
8383

8484
local library_arch_path="${curl_output_dir}/${library_arch}"
85-
rm -rf "$library_arch_path"
86-
mkdir -p "${library_arch_path}/log"
85+
util_remove_dir "$library_arch_path"
86+
util_create_dir "${library_arch_path}/log"
8787

8888
android_set_toolchain "${COMMON_LIBRARY_NAME}" "${library_arch}" "${ANDROID_API}"
8989
android_set_cpu_feature "${COMMON_LIBRARY_NAME}" "${library_arch}" "${ANDROID_API}"

script/android-nghttp2.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ function android_nghttp2_pre_tool_check() {
4545
nghttp2_zip_file_path="${nghttp2_input_dir}/${nghttp2_zip_file}"
4646
nghttp2_zip_file_no_suffix_path="${nghttp2_input_dir}/${nghttp2_zip_file_no_suffix}"
4747

48-
mkdir -p "${nghttp2_input_dir}"
49-
mkdir -p "${nghttp2_output_dir}"
48+
util_create_dir "${nghttp2_input_dir}"
49+
util_create_dir "${nghttp2_output_dir}"
5050

5151
android_nghttp2_printf_variable
5252

@@ -69,8 +69,8 @@ function android_nghttp2_build_config_make() {
6969
export ANDROID_NDK_HOME=${ANDROID_NDK_ROOT}
7070

7171
local library_arch_path="${nghttp2_output_dir}/${library_arch}"
72-
rm -rf "$library_arch_path"
73-
mkdir -p "${library_arch_path}/log"
72+
util_remove_dir "$library_arch_path"
73+
util_create_dir "${library_arch_path}/log"
7474

7575
android_set_toolchain "${COMMON_LIBRARY_NAME}" "${library_arch}" "${ANDROID_API}"
7676
android_set_cpu_feature "${COMMON_LIBRARY_NAME}" "${library_arch}" "${ANDROID_API}"

script/android-openssl.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ function android_openssl_pre_tool_check() {
4545
openssl_zip_file_path="${openssl_input_dir}/${openssl_zip_file}"
4646
openssl_zip_file_no_suffix_path="${openssl_input_dir}/${openssl_zip_file_no_suffix}"
4747

48-
mkdir -p "${openssl_input_dir}"
49-
mkdir -p "${openssl_output_dir}"
48+
util_create_dir "${openssl_input_dir}"
49+
util_create_dir "${openssl_output_dir}"
5050

5151
android_openssl_printf_variable
5252

@@ -69,8 +69,8 @@ function android_openssl_build_config_make() {
6969
export ANDROID_NDK_HOME=${ANDROID_NDK_ROOT}
7070

7171
local library_arch_path="${openssl_output_dir}/${library_arch}"
72-
rm -rf "$library_arch_path"
73-
mkdir -p "${library_arch_path}/log"
72+
util_remove_dir "$library_arch_path"
73+
util_create_dir "${library_arch_path}/log"
7474

7575
android_set_toolchain "${COMMON_LIBRARY_NAME}" "${library_arch}" "${ANDROID_API}"
7676
android_set_cpu_feature "${COMMON_LIBRARY_NAME}" "${library_arch}" "${ANDROID_API}"

script/ios-common.sh

Lines changed: 118 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -19,40 +19,49 @@ echo "# Reference:
1919
echo "# Url: https://github.com/AsteriskZuo/openssl_for_ios_and_android #" >/dev/null
2020
echo "###############################################################################" >/dev/null
2121

22-
export PLATFORM_TYPE="iOS"
23-
export IOS_MIN_TARGET="8.0"
24-
export ARCHS=("armv7" "arm64" "arm64e" "x86_64")
25-
export SDKS=("iphoneos" "iphoneos" "iphoneos" "iphonesimulator")
26-
export PLATFORMS=("iPhoneOS" "iPhoneOS" "iphoneos" "iPhoneSimulator")
27-
28-
# for test !!!
29-
# export ARCHS=("armv7")
30-
# export SDKS=("iphoneos")
31-
# export PLATFORMS=("iPhoneOS")
32-
33-
function get_android_arch() {
34-
local common_arch=$1
35-
case ${common_arch} in
36-
armv7)
37-
echo "armv7"
38-
;;
39-
arm64)
40-
echo "arm64"
41-
;;
42-
arm64e)
43-
echo "arm64e"
44-
;;
45-
x86)
46-
echo "x86"
22+
echo "###############################################################################" >/dev/null
23+
echo "#### Global Variable Partition #####" >/dev/null
24+
echo "###############################################################################" >/dev/null
25+
26+
export COMMON_PLATFORM_TYPE="ios"
27+
export IOS_ARCHS=("armv7" "arm64" "arm64e" "x86-64")
28+
export IOS_TRIPLES=("armv7-ios-darwin" "aarch64-ios-darwin" "aarch64-ios-darwin" "x86_64-ios-darwin")
29+
export IOS_API=8.0
30+
export IOS_SYSROOT=""
31+
32+
# for test
33+
# IOS_ARCHS=("x86-64")
34+
# IOS_TRIPLES=("x86_64-ios-darwin")
35+
# IOS_API=8.0
36+
37+
echo "###############################################################################" >/dev/null
38+
echo "#### Function Partition #####" >/dev/null
39+
echo "###############################################################################" >/dev/null
40+
41+
function ios_get_sdk_name() {
42+
local arch=$1
43+
case ${arch} in
44+
armv7 | armv7s | arm64 | arm64e)
45+
echo "iphoneos"
4746
;;
48-
x86_64)
49-
echo "x86-64"
47+
x86 | x86-64)
48+
echo "iphonesimulator"
5049
;;
5150
esac
5251
}
5352

53+
function ios_get_sdk_path() {
54+
local arch=$1
55+
echo "$(xcrun --sdk $(ios_get_sdk_name $arch) --show-sdk-path)"
56+
}
57+
58+
function ios_set_sysroot() {
59+
local arch=$1
60+
IOS_SYSROOT="$(ios_get_sdk_path $arch)"
61+
}
62+
5463
function ios_get_build_host() {
55-
local arch=$(get_android_arch $1)
64+
local arch=$1
5665
case ${arch} in
5766
armv7)
5867
echo "armv7-ios-darwin"
@@ -72,71 +81,124 @@ function ios_get_build_host() {
7281
esac
7382
}
7483

75-
function set_android_cpu_feature() {
84+
function ios_set_cpu_feature() {
7685
local name=$1
77-
local arch=$(get_android_arch $2)
78-
local ios_min_target=$3
86+
local arch=$2
87+
local api=$3
7988
local sysroot=$4
8089
case ${arch} in
8190
armv7)
8291
export CC="xcrun -sdk iphoneos clang -arch armv7"
8392
export CXX="xcrun -sdk iphoneos clang++ -arch armv7"
84-
export CFLAGS="-arch armv7 -target armv7-ios-darwin -march=armv7 -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp -Wno-unused-function -fstrict-aliasing -Oz -Wno-ignored-optimization-argument -DIOS -isysroot ${sysroot} -fembed-bitcode -miphoneos-version-min=${ios_min_target} -I${sysroot}/usr/include"
93+
export CFLAGS="-arch armv7 -target armv7-ios-darwin -march=armv7 -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp -Wno-unused-function -fstrict-aliasing -Oz -Wno-ignored-optimization-argument -DIOS -isysroot ${sysroot} -fembed-bitcode -miphoneos-version-min=${api} -I${sysroot}/usr/include"
8594
export LDFLAGS="-arch armv7 -target armv7-ios-darwin -march=armv7 -isysroot ${sysroot} -fembed-bitcode -L${sysroot}/usr/lib "
86-
export CXXFLAGS="-std=c++14 -arch armv7 -target armv7-ios-darwin -march=armv7 -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp -fstrict-aliasing -fembed-bitcode -DIOS -miphoneos-version-min=${ios_min_target} -I${sysroot}/usr/include"
95+
export CXXFLAGS="-std=c++14 -arch armv7 -target armv7-ios-darwin -march=armv7 -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp -fstrict-aliasing -fembed-bitcode -DIOS -miphoneos-version-min=${api} -I${sysroot}/usr/include"
8796
;;
8897
arm64)
8998
export CC="xcrun -sdk iphoneos clang -arch arm64"
9099
export CXX="xcrun -sdk iphoneos clang++ -arch arm64"
91-
export CFLAGS="-arch arm64 -target aarch64-ios-darwin -march=armv8 -mcpu=generic -Wno-unused-function -fstrict-aliasing -Oz -Wno-ignored-optimization-argument -DIOS -isysroot ${sysroot} -fembed-bitcode -miphoneos-version-min=${ios_min_target} -I${sysroot}/usr/include"
100+
export CFLAGS="-arch arm64 -target aarch64-ios-darwin -march=armv8 -mcpu=generic -Wno-unused-function -fstrict-aliasing -Oz -Wno-ignored-optimization-argument -DIOS -isysroot ${sysroot} -fembed-bitcode -miphoneos-version-min=${api} -I${sysroot}/usr/include"
92101
export LDFLAGS="-arch arm64 -target aarch64-ios-darwin -march=armv8 -isysroot ${sysroot} -fembed-bitcode -L${sysroot}/usr/lib "
93-
export CXXFLAGS="-std=c++14 -arch arm64 -target aarch64-ios-darwin -march=armv8 -mcpu=generic -fstrict-aliasing -fembed-bitcode -DIOS -miphoneos-version-min=${ios_min_target} -I${sysroot}/usr/include"
102+
export CXXFLAGS="-std=c++14 -arch arm64 -target aarch64-ios-darwin -march=armv8 -mcpu=generic -fstrict-aliasing -fembed-bitcode -DIOS -miphoneos-version-min=${api} -I${sysroot}/usr/include"
94103
;;
95104
arm64e)
96105
# -march=armv8.3 ???
97106
export CC="xcrun -sdk iphoneos clang -arch arm64e"
98107
export CXX="xcrun -sdk iphoneos clang++ -arch arm64e"
99-
export CFLAGS="-arch arm64e -target aarch64-ios-darwin -Wno-unused-function -fstrict-aliasing -DIOS -isysroot ${sysroot} -fembed-bitcode -miphoneos-version-min=${ios_min_target} -I${sysroot}/usr/include"
108+
export CFLAGS="-arch arm64e -target aarch64-ios-darwin -Wno-unused-function -fstrict-aliasing -DIOS -isysroot ${sysroot} -fembed-bitcode -miphoneos-version-min=${api} -I${sysroot}/usr/include"
100109
export LDFLAGS="-arch arm64e -target aarch64-ios-darwin -isysroot ${sysroot} -fembed-bitcode -L${sysroot}/usr/lib "
101-
export CXXFLAGS="-std=c++14 -arch arm64e -target aarch64-ios-darwin -fstrict-aliasing -fembed-bitcode -DIOS -miphoneos-version-min=${ios_min_target} -I${sysroot}/usr/include"
110+
export CXXFLAGS="-std=c++14 -arch arm64e -target aarch64-ios-darwin -fstrict-aliasing -fembed-bitcode -DIOS -miphoneos-version-min=${api} -I${sysroot}/usr/include"
102111
;;
103112
x86)
104113
export CC="xcrun -sdk iphonesimulator clang -arch x86"
105114
export CXX="xcrun -sdk iphonesimulator clang++ -arch x86"
106-
export CFLAGS="-arch x86 -target x86-ios-darwin -march=i386 -msse4.2 -mpopcnt -m64 -mtune=intel -Wno-unused-function -fstrict-aliasing -O2 -Wno-ignored-optimization-argument -DIOS -isysroot ${sysroot} -mios-simulator-version-min=${ios_min_target} -I${sysroot}/usr/include"
115+
export CFLAGS="-arch x86 -target x86-ios-darwin -march=i386 -msse4.2 -mpopcnt -m64 -mtune=intel -Wno-unused-function -fstrict-aliasing -O2 -Wno-ignored-optimization-argument -DIOS -isysroot ${sysroot} -mios-simulator-version-min=${api} -I${sysroot}/usr/include"
107116
export LDFLAGS="-arch x86 -target x86-ios-darwin -march=i386 -isysroot ${sysroot} -L${sysroot}/usr/lib "
108-
export CXXFLAGS="-std=c++14 -arch x86 -target x86-ios-darwin -march=i386 -msse4.2 -mpopcnt -m64 -mtune=intel -fstrict-aliasing -DIOS -mios-simulator-version-min=${ios_min_target} -I${sysroot}/usr/include"
117+
export CXXFLAGS="-std=c++14 -arch x86 -target x86-ios-darwin -march=i386 -msse4.2 -mpopcnt -m64 -mtune=intel -fstrict-aliasing -DIOS -mios-simulator-version-min=${api} -I${sysroot}/usr/include"
109118
;;
110119
x86-64)
111120
export CC="xcrun -sdk iphonesimulator clang -arch x86_64"
112121
export CXX="xcrun -sdk iphonesimulator clang++ -arch x86_64"
113-
export CFLAGS="-arch x86_64 -target x86_64-ios-darwin -march=x86-64 -msse4.2 -mpopcnt -m64 -mtune=intel -Wno-unused-function -fstrict-aliasing -O2 -Wno-ignored-optimization-argument -DIOS -isysroot ${sysroot} -mios-simulator-version-min=${ios_min_target} -I${sysroot}/usr/include"
122+
export CFLAGS="-arch x86_64 -target x86_64-ios-darwin -march=x86-64 -msse4.2 -mpopcnt -m64 -mtune=intel -Wno-unused-function -fstrict-aliasing -O2 -Wno-ignored-optimization-argument -DIOS -isysroot ${sysroot} -mios-simulator-version-min=${api} -I${sysroot}/usr/include"
114123
export LDFLAGS="-arch x86_64 -target x86_64-ios-darwin -march=x86-64 -isysroot ${sysroot} -L${sysroot}/usr/lib "
115-
export CXXFLAGS="-std=c++14 -arch x86_64 -target x86_64-ios-darwin -march=x86-64 -msse4.2 -mpopcnt -m64 -mtune=intel -fstrict-aliasing -DIOS -mios-simulator-version-min=${ios_min_target} -I${sysroot}/usr/include"
124+
export CXXFLAGS="-std=c++14 -arch x86_64 -target x86_64-ios-darwin -march=x86-64 -msse4.2 -mpopcnt -m64 -mtune=intel -fstrict-aliasing -DIOS -mios-simulator-version-min=${api} -I${sysroot}/usr/include"
116125
;;
117126
*)
118-
log_error_print "not support" && exit 1
127+
common_die "not support $arch"
119128
;;
120129
esac
121130
}
122131

123-
function ios_printf_global_params() {
124-
local arch=$1
125-
local type=$2
126-
local platform=$3
127-
local in_dir=$4
128-
local out_dir=$5
129-
log_var_print "arch = $arch"
130-
log_var_print "type = $type"
131-
log_var_print "platform = $platform"
132-
log_var_print "PLATFORM_TYPE = $PLATFORM_TYPE"
133-
log_var_print "IOS_MIN_TARGET = $IOS_MIN_TARGET"
134-
log_var_print "in_dir = $in_dir"
135-
log_var_print "out_dir = $out_dir"
132+
function ios_printf_variable() {
133+
log_var_print "IOS_ARCHS = ${IOS_ARCHS[@]}"
134+
log_var_print "IOS_TRIPLES = ${IOS_TRIPLES[@]}"
135+
log_var_print "IOS_API = $IOS_API"
136+
}
137+
138+
function ios_printf_arch_variable() {
139+
log_var_print "IOS_SYSROOT = $IOS_SYSROOT"
136140
log_var_print "CC = $CC"
137141
log_var_print "CXX = $CXX"
138142
log_var_print "CFLAGS = $CFLAGS"
139143
log_var_print "CXXFLAGS = $CXXFLAGS"
140144
log_var_print "LDFLAGS = $LDFLAGS"
141-
echo SHELL_SCRIPT_NAME=$SHELL_SCRIPT_NAME
145+
}
146+
147+
function ios_help() {
148+
common_help
149+
}
150+
151+
function ios_get_shell_script_path() {
152+
echo "${COMMON_SCRIPT_DIR}/$(util_tolower $COMMON_PLATFORM_TYPE)-${COMMON_LIBRARY_NAME}.sh"
153+
}
154+
155+
echo "###############################################################################" >/dev/null
156+
echo "#### Flow Function Partition #####" >/dev/null
157+
echo "###############################################################################" >/dev/null
158+
159+
function ios_pre_tool_check() {
160+
log_info_print "ios_pre_tool_check $1 start..."
161+
local library_id=$1
162+
local pre_tool_check="ios_${COMMON_LIBRARY_NAME}_pre_tool_check"
163+
common_pre_tool_check "$library_id"
164+
eval ${pre_tool_check} "$library_id"
165+
log_info_print "ios_pre_tool_check $1 end..."
166+
}
167+
168+
function ios_pre_download_zip() {
169+
log_info_print "ios_pre_download_zip $1 start..."
170+
local library_id=$1
171+
local pre_download_zip="ios_${COMMON_LIBRARY_NAME}_pre_download_zip"
172+
common_pre_download_zip "$library_id"
173+
eval ${pre_download_zip} "$library_id"
174+
log_info_print "ios_pre_download_zip $1 end..."
175+
}
176+
177+
function ios_build_unzip() {
178+
log_info_print "ios_build_unzip $1 $2 start..."
179+
local library_id=$1
180+
local library_arch=$2
181+
local build_unzip="ios_${COMMON_LIBRARY_NAME}_build_unzip"
182+
common_build_unzip "$library_id"
183+
eval ${build_unzip} "$library_id"
184+
log_info_print "ios_build_unzip $1 $2 end..."
185+
}
186+
187+
function ios_build_config_make() {
188+
log_info_print "ios_build_config_make $1 $2 start..."
189+
local library_id=$1
190+
local library_arch=$2
191+
local build_config_make="ios_${COMMON_LIBRARY_NAME}_build_config_make"
192+
common_build_config_make "$library_id" "$library_arch"
193+
eval ${build_config_make} "$library_id" "$library_arch"
194+
log_info_print "ios_build_config_make $1 $2 end..."
195+
}
196+
197+
function ios_archive() {
198+
log_info_print "ios_archive $1 start..."
199+
local library_id=$1
200+
local archive="ios_${COMMON_LIBRARY_NAME}_archive"
201+
common_archive "$library_id"
202+
eval ${archive} "$library_id"
203+
log_info_print "ios_archive $1 end..."
142204
}

0 commit comments

Comments
 (0)