@@ -19,40 +19,49 @@ echo "# Reference:
1919echo " # Url: https://github.com/AsteriskZuo/openssl_for_ios_and_android #" > /dev/null
2020echo " ###############################################################################" > /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+
5463function 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