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 - -
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 -
TODO:
TODO:
TODO:
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 -
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 -
target version test result default pass higher generally pass low maybe not pass
- 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 ...