Passing desired ABIs as an argument

ffmpeg_4.4.2
Javernaut 5 years ago
parent 226a462159
commit 22e16fdfcb
  1. 8
      ffmpeg-android-maker.sh
  2. 41
      scripts/parse-arguments.sh

@ -97,12 +97,8 @@ do
cd ${BASE_DIR} cd ${BASE_DIR}
done done
# ABIs to build FFmpeg for. # Main build loop
# x86 is the first, because it is likely to have Text Relocations. for ABI in ${FFMPEG_ABIS_TO_BUILD[@]}
# In this case the rest ABIs will not be assembled at all.
ABIS_TO_BUILD=( "x86" "x86_64" "armeabi-v7a" "arm64-v8a" )
for ABI in ${ABIS_TO_BUILD[@]}
do do
# Exporting variables for the current ABI # Exporting variables for the current ABI
source ${SCRIPTS_DIR}/export-build-variables.sh ${ABI} source ${SCRIPTS_DIR}/export-build-variables.sh ${ABI}

@ -3,16 +3,38 @@
# This script parses arguments that were passed to ffmpeg-android-maker.sh # This script parses arguments that were passed to ffmpeg-android-maker.sh
# and exports a bunch of varables that are used elsewhere. # and exports a bunch of varables that are used elsewhere.
# Local variables with default values. Can be overridden with specific arguments # Local variables with default values (except ABIS_TO_BUILD).
# See the end of this file for more description # Can be overridden with specific arguments.
EXTERNAL_LIBRARIES=() # See the end of this file for more description.
ABIS_TO_BUILD=()
API_LEVEL=16
SOURCE_TYPE=TAR SOURCE_TYPE=TAR
SOURCE_VALUE=4.2.2 SOURCE_VALUE=4.2.2
API_LEVEL=16 EXTERNAL_LIBRARIES=()
for argument in "$@" for argument in "$@"
do do
case $argument in case $argument in
# Build for only specified ABIs (separated by comma)
--target-abis=*|-abis=*)
IFS=',' read -ra ABIS <<< "${argument#*=}"
for abi in "${ABIS[@]}"; do
case $abi in
x86|x86_64|armeabi-v7a|arm64-v8a)
ABIS_TO_BUILD+=( "$abi" )
;;
arm)
ABIS_TO_BUILD+=( "armeabi-v7a" )
;;
arm64)
ABIS_TO_BUILD+=( "arm64-v8a" )
;;
*)
echo "Unknown ABI: $abi"
;;
esac
done
;;
# Use this value as Android platform version during compilation. # Use this value as Android platform version during compilation.
--android-api-level=*|-android=*) --android-api-level=*|-android=*)
API_LEVEL="${argument#*=}" API_LEVEL="${argument#*=}"
@ -55,11 +77,20 @@ do
esac esac
done done
# if ABIS_TO_BUILD list is empty, then fill it with all supported ABIs
# The x86 is the first, because it is more likely to have Text Relocations.
# In this case the rest ABIs will not be assembled at all.
if [ ${#ABIS_TO_BUILD[@]} -eq 0 ]; then
ABIS_TO_BUILD=( "x86" "x86_64" "armeabi-v7a" "arm64-v8a" )
fi
# The FFmpeg will be build for ABIs in this list
export FFMPEG_ABIS_TO_BUILD=${ABIS_TO_BUILD[@]}
# Saving the information FFmpeg's source code downloading # Saving the information FFmpeg's source code downloading
export FFMPEG_SOURCE_TYPE=$SOURCE_TYPE export FFMPEG_SOURCE_TYPE=$SOURCE_TYPE
export FFMPEG_SOURCE_VALUE=$SOURCE_VALUE export FFMPEG_SOURCE_VALUE=$SOURCE_VALUE
# A list of external libraries to build into the FFMpeg # A list of external libraries to build into the FFmpeg
# Elements from this list are used for strings substitution # Elements from this list are used for strings substitution
export FFMPEG_EXTERNAL_LIBRARIES=${EXTERNAL_LIBRARIES[@]} export FFMPEG_EXTERNAL_LIBRARIES=${EXTERNAL_LIBRARIES[@]}

Loading…
Cancel
Save