simple-build-ios-and-android-script
A common build project for building mobile platform native libraries.
Mobile platform C&&C++ native library.
Build target library list:
id
name
version
dependent libraries
note
1
openssl
1.1.1d
-
Configure is perl script
2
nghttp2
1.40.0
-
-
3
curl
7.68.0
openssl,nghttp2
-
3
protobuf
3.11.4
-
-
iOS Platform static library(.a) support list:
id
armv7
armv7s
arm64
arm64e
x86
x86-64
note
1
yes
no
yes
yes
no
yes
-
2
yes
no
yes
yes
no
yes
-
3
yes
no
yes
yes
no
yes
-
4
yes
no
yes
yes
no
yes
-
iOS Platform dynamic library(.dylib) support list:
TODO:
iOS Platform static framework(.framework) support list:
TODO:
iOS Platform dynamic framework(.framework) support list:
TODO:
Android Platform static library(.a) support list:
id
armeabi-v7a
arm64-v8a
x86
x86-64
note
1
yes
yes
yes
yes
-
2
yes
yes
yes
yes
-
3
yes
yes
yes
yes
-
4
yes
yes
yes
yes
-
Android Platform dynamic library(.so) support list:
id
armeabi-v7a
arm64-v8a
x86
x86-64
note
1
yes
yes
yes
yes
-
2
yes
yes
yes
yes
-
3
yes
no
yes
yes
-
4
no
yes
no
no
-
Android Platform support lists:
Use the entry script to build the target library.
ios.sh is the ios platform entry script.
android.sh is the android platform entry script.
target version
test result
default
pass
higher
generally pass
low
maybe not pass
Adding subscripts requires some experience in scripting and project building.
Adding subscripts can generally be a contributor to the project.
Adding subscript details:
Update parameters:
COMMON_LIBRARY_ID_LIST
COMMON_LIBRARY_NAME_LIST
COMMON_LIBRARY_VERSION_LIST
COMMON_LIBRARY_URL_LIST
Update method:
common_get_library_id_from_name
script:
Usage agreement:
A script method or function needs to use the keyword function.
Global variables need to use the keyword export and are combined with uppercase alphanumeric and underlined characters.
Script methods or local variables within functions use the keyword local.
Methods within the common.sh script need to use the prefix common_.
ios-*.sh script methods need to use the prefix ios_.
android-*.sh script methods need to use the prefix android_.
Methods in the util. Sh script require the prefix util_.
Methods within the subscript need to use the prefix xxx_.
Composite scripts require the use of composite prefixes.
Method implementation:
${COMMON_PLATFORM_TYPE}_${COMMON_LIBRARY_NAME}_printf_variable: (optional)
${COMMON_PLATFORM_TYPE}_${COMMON_LIBRARY_NAME}_pre_tool_check: (must)
${COMMON_PLATFORM_TYPE}_${COMMON_LIBRARY_NAME}_pre_download_zip: (must)
${COMMON_PLATFORM_TYPE}_${COMMON_LIBRARY_NAME}_build_unzip: (must)
${COMMON_PLATFORM_TYPE}_${COMMON_LIBRARY_NAME}_build_config_make: (must)
${COMMON_PLATFORM_TYPE}_${COMMON_LIBRARY_NAME}_archive: (must)
Contribution notes:
AsteriskZuo: Create the project and complete the main frame design.
Plug-in programming:
You can build the target library by writing a corresponding subscript and adding parameters.
Dynamic call:
Similar to C++ polymorphism.
High reusability:
All code blocks are encapsulated using methods (functions).
Dependent detection:
Build target library dependency detection:
manual build
auto build all dependency target library: TODO:
To reconstruct the configure: TODO:
Input:
Source directory:
GNU make project:
cmake project: No build script is required. The iOS platform has a better way, and the Android platform directly introduces cmakelist files.
Build tools:
iOS independent compiler tool chain
Android independent compiler tool chain.
More ...
Output:
Interim interim documents:
Temporary intermediate file.
Build the library product.
Build library products:
Script:
Entry script:
ios.sh: iOS platform entry script.
android.sh: Android platform entry script.
Tool script:
util.sh: Provide various basic functions.
log.sh: Provide various basic functions.
common.sh: Provide common functions for iOS and Android platforms.
ios-common.sh: Provide common functions for iOS platform.
android-common.sh: Provide common functions of Android platform.
Subscript(plug-in script):
ios-openssl.sh:
android-openssl.sh:
ios-curl.sh:
android-curl.sh:
More ...
Only current list item builds are supported.
Project-made versions can be built, but may not be built properly for lower versions.
Building the dependencies of the target project requires manual construction.
openssl_for_ios_and_android
simple-build-ios-and-android-script