allow overriding sdk version while building apple platforms, improves #168
This commit is contained in:
parent
21eaa9a729
commit
26e78c5cb8
25
.github/workflows/ios-build-scripts.yml
vendored
25
.github/workflows/ios-build-scripts.yml
vendored
|
@ -3,8 +3,29 @@ name: ios build scripts
|
|||
on: [ push, pull_request ]
|
||||
|
||||
jobs:
|
||||
build-main-on-macos:
|
||||
name: ios main
|
||||
build-main-on-macos-bigsur:
|
||||
name: ios main on big sur
|
||||
runs-on: macos-11
|
||||
strategy:
|
||||
matrix:
|
||||
xcode: [ '12.5.1', '13.0' ]
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: set up xcode
|
||||
run: echo "export DEVELOPER_DIR=/Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer" > ~/.xcode.for.ffmpeg.kit.sh
|
||||
- name: run the build script
|
||||
run: ./ios.sh --xcframework --enable-ios-audiotoolbox --enable-ios-avfoundation --enable-ios-bzip2 --enable-ios-libiconv --enable-ios-videotoolbox --enable-ios-zlib
|
||||
- name: print build logs
|
||||
if: ${{ always() }}
|
||||
run: cat build.log
|
||||
- name: print ffbuild logs
|
||||
if: ${{ failure() }}
|
||||
run: '[[ -f ./src/ffmpeg/ffbuild/config.log ]] && tail -50 ./src/ffmpeg/ffbuild/config.log'
|
||||
build-main-on-macos-catalina:
|
||||
name: ios main on catalina
|
||||
runs-on: macos-10.15
|
||||
strategy:
|
||||
matrix:
|
||||
|
|
25
.github/workflows/macos-build-scripts.yml
vendored
25
.github/workflows/macos-build-scripts.yml
vendored
|
@ -3,8 +3,29 @@ name: macos build scripts
|
|||
on: [ push, pull_request ]
|
||||
|
||||
jobs:
|
||||
build-main-on-macos:
|
||||
name: macos main
|
||||
build-main-on-macos-bigsur:
|
||||
name: macos main on big sur
|
||||
runs-on: macos-11
|
||||
strategy:
|
||||
matrix:
|
||||
xcode: [ '12.5.1', '13.0' ]
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: set up xcode
|
||||
run: echo "export DEVELOPER_DIR=/Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer" > ~/.xcode.for.ffmpeg.kit.sh
|
||||
- name: run the build script
|
||||
run: ./macos.sh --xcframework --enable-macos-audiotoolbox --enable-macos-avfoundation --enable-macos-bzip2 --enable-macos-coreimage --enable-macos-libiconv --enable-macos-opencl --enable-macos-opengl --enable-macos-videotoolbox --enable-macos-zlib
|
||||
- name: print build logs
|
||||
if: ${{ always() }}
|
||||
run: cat build.log
|
||||
- name: print ffbuild logs
|
||||
if: ${{ failure() }}
|
||||
run: '[[ -f ./src/ffmpeg/ffbuild/config.log ]] && tail -50 ./src/ffmpeg/ffbuild/config.log'
|
||||
build-main-on-macos-catalina:
|
||||
name: macos main on catalina
|
||||
runs-on: macos-10.15
|
||||
strategy:
|
||||
matrix:
|
||||
|
|
25
.github/workflows/tvos-build-scripts.yml
vendored
25
.github/workflows/tvos-build-scripts.yml
vendored
|
@ -3,8 +3,29 @@ name: tvos build scripts
|
|||
on: [ push, pull_request ]
|
||||
|
||||
jobs:
|
||||
build-main-on-macos:
|
||||
name: tvos main
|
||||
build-main-on-macos-bigsur:
|
||||
name: tvos main on big sur
|
||||
runs-on: macos-11
|
||||
strategy:
|
||||
matrix:
|
||||
xcode: [ '12.5.1', '13.0' ]
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: set up xcode
|
||||
run: echo "export DEVELOPER_DIR=/Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer" > ~/.xcode.for.ffmpeg.kit.sh
|
||||
- name: run the build script
|
||||
run: ./tvos.sh --xcframework --enable-tvos-bzip2 --enable-tvos-audiotoolbox --enable-tvos-libiconv --enable-tvos-videotoolbox --enable-tvos-zlib
|
||||
- name: print build logs
|
||||
if: ${{ always() }}
|
||||
run: cat build.log
|
||||
- name: print ffbuild logs
|
||||
if: ${{ failure() }}
|
||||
run: '[[ -f ./src/ffmpeg/ffbuild/config.log ]] && tail -50 ./src/ffmpeg/ffbuild/config.log'
|
||||
build-main-on-macos-catalina:
|
||||
name: tvos main on catalina
|
||||
runs-on: macos-10.15
|
||||
strategy:
|
||||
matrix:
|
||||
|
|
10
ios.sh
10
ios.sh
|
@ -123,6 +123,16 @@ while [ ! $# -eq 0 ]; do
|
|||
|
||||
disable_arch "${DISABLED_ARCH}"
|
||||
;;
|
||||
--target=*)
|
||||
TARGET=$(echo $1 | sed -e 's/^--[A-Za-z]*=//g')
|
||||
|
||||
export IOS_MIN_VERSION=${TARGET}
|
||||
;;
|
||||
--mac-catalyst-target=*)
|
||||
TARGET=$(echo $1 | sed -e 's/^--[A-Za-z]*-[A-Za-z]*-[A-Za-z]*=//g')
|
||||
|
||||
export MAC_CATALYST_MIN_VERSION=${TARGET}
|
||||
;;
|
||||
*)
|
||||
print_unknown_option "$1"
|
||||
;;
|
||||
|
|
5
macos.sh
5
macos.sh
|
@ -123,6 +123,11 @@ while [ ! $# -eq 0 ]; do
|
|||
|
||||
disable_arch "${DISABLED_ARCH}"
|
||||
;;
|
||||
--target=*)
|
||||
TARGET=$(echo $1 | sed -e 's/^--[A-Za-z]*=//g')
|
||||
|
||||
export MACOS_MIN_VERSION=${TARGET}
|
||||
;;
|
||||
*)
|
||||
print_unknown_option "$1"
|
||||
;;
|
||||
|
|
|
@ -31,16 +31,16 @@ disable_ios_architecture_not_supported_on_detected_sdk_version() {
|
|||
armv7 | armv7s | i386)
|
||||
|
||||
# SUPPORTED UNTIL IOS SDK 10.3.1
|
||||
if [[ $(echo "$2 > 10.4" | bc) -eq 1 ]]; then
|
||||
local SUPPORTED=0
|
||||
else
|
||||
if [[ $(compare_versions "$2" "10.3.1") -le 0 ]]; then
|
||||
local SUPPORTED=1
|
||||
else
|
||||
local SUPPORTED=0
|
||||
fi
|
||||
;;
|
||||
arm64e)
|
||||
|
||||
# INTRODUCED IN IOS SDK 10.1
|
||||
if [[ $(echo "$2 > 10" | bc) -eq 1 ]]; then
|
||||
if [[ $(compare_versions "$2" "10.1") -ge 1 ]]; then
|
||||
local SUPPORTED=1
|
||||
else
|
||||
local SUPPORTED=0
|
||||
|
@ -48,8 +48,8 @@ disable_ios_architecture_not_supported_on_detected_sdk_version() {
|
|||
;;
|
||||
x86-64-mac-catalyst)
|
||||
|
||||
# INTRODUCED IN IOS SDK 13
|
||||
if [[ $(echo "$2 > 12.4" | bc) -eq 1 ]]; then
|
||||
# INTRODUCED IN IOS SDK 13.0
|
||||
if [[ $(compare_versions "$2" "13") -ge 1 ]]; then
|
||||
local SUPPORTED=1
|
||||
else
|
||||
local SUPPORTED=0
|
||||
|
@ -57,8 +57,8 @@ disable_ios_architecture_not_supported_on_detected_sdk_version() {
|
|||
;;
|
||||
arm64-*)
|
||||
|
||||
# INTRODUCED IN IOS SDK 14
|
||||
if [[ $(echo "$2 > 13.7" | bc) -eq 1 ]]; then
|
||||
# INTRODUCED IN IOS SDK 14.0
|
||||
if [[ $(compare_versions "$2" "14") -ge 1 ]]; then
|
||||
local SUPPORTED=1
|
||||
else
|
||||
local SUPPORTED=0
|
||||
|
@ -87,8 +87,8 @@ disable_tvos_architecture_not_supported_on_detected_sdk_version() {
|
|||
case ${ARCH_NAME} in
|
||||
arm64-simulator)
|
||||
|
||||
# INTRODUCED IN TVOS SDK 14
|
||||
if [[ $(echo "$2 > 13.4" | bc) -eq 1 ]]; then
|
||||
# INTRODUCED IN TVOS SDK 14.0
|
||||
if [[ $(compare_versions "$2" "14") -ge 1 ]]; then
|
||||
local SUPPORTED=1
|
||||
else
|
||||
local SUPPORTED=0
|
||||
|
@ -117,8 +117,8 @@ disable_macos_architecture_not_supported_on_detected_sdk_version() {
|
|||
case ${ARCH_NAME} in
|
||||
arm64)
|
||||
|
||||
# INTRODUCED IN MACOS SDK 11
|
||||
if [[ $(echo "$2 > 10.16" | bc) -eq 1 ]]; then
|
||||
# INTRODUCED IN MACOS SDK 11.0
|
||||
if [[ $(compare_versions "$2" "11") -ge 1 ]]; then
|
||||
local SUPPORTED=1
|
||||
else
|
||||
local SUPPORTED=0
|
||||
|
@ -1235,7 +1235,7 @@ get_min_version_cflags() {
|
|||
get_min_sdk_version() {
|
||||
case ${ARCH} in
|
||||
*-mac-catalyst)
|
||||
echo "13.0"
|
||||
echo "${MAC_CATALYST_MIN_VERSION}"
|
||||
;;
|
||||
*)
|
||||
case ${FFMPEG_KIT_BUILD_TYPE} in
|
||||
|
|
|
@ -25,7 +25,7 @@ libraries are created under the prebuilt folder.\n"
|
|||
echo -e "Usage: ./$COMMAND [OPTION]...\n"
|
||||
echo -e "Specify environment variables as VARIABLE=VALUE to override default build options.\n"
|
||||
|
||||
display_help_options " -x, --xcframework\t\tbuild xcframework bundles instead of framework bundles and universal libraries" " -l, --lts build lts packages to support sdk 9.3+ devices"
|
||||
display_help_options " -x, --xcframework\t\tbuild xcframework bundles instead of framework bundles and universal libraries" " -l, --lts build lts packages to support sdk 9.3+ devices" " --target=ios sdk version\t\t\toverride minimum deployment target" " --mac-catalyst-target=ios sdk version\toverride minimum deployment target for mac catalyst"
|
||||
display_help_licensing
|
||||
|
||||
echo -e "Architectures:"
|
||||
|
@ -60,6 +60,7 @@ libraries are created under the prebuilt folder.\n"
|
|||
|
||||
enable_main_build() {
|
||||
export IOS_MIN_VERSION=12.1
|
||||
export MAC_CATALYST_MIN_VERSION=14.0
|
||||
}
|
||||
|
||||
enable_lts_build() {
|
||||
|
@ -68,6 +69,9 @@ enable_lts_build() {
|
|||
# XCODE 7.3 HAS IOS SDK 9.3
|
||||
export IOS_MIN_VERSION=9.3
|
||||
|
||||
# MAC CATALYST IS INTRODUCED IN 13.0
|
||||
export MAC_CATALYST_MIN_VERSION=13.0
|
||||
|
||||
# IOS SDK 9.3 SUPPORTS VIDEOTOOLBOX
|
||||
# HOWEVER, THE LATEST FFMPEG VERSION USES SDK 11.0 APIS
|
||||
# THEREFORE, VIDEOTOOLBOX IS DISABLED IN LTS RELEASES
|
||||
|
|
|
@ -17,7 +17,7 @@ When compilation ends, libraries are created under the prebuilt folder.\n"
|
|||
echo -e "Usage: ./$COMMAND [OPTION]...\n"
|
||||
echo -e "Specify environment variables as VARIABLE=VALUE to override default build options.\n"
|
||||
|
||||
display_help_options " -x, --xcframework\t\tbuild xcframework bundles instead of framework bundles and universal libraries" " -l, --lts build lts packages to support sdk 10.11+ devices"
|
||||
display_help_options " -x, --xcframework\t\tbuild xcframework bundles instead of framework bundles and universal libraries" " -l, --lts build lts packages to support sdk 10.11+ devices" " --target=macos sdk version\toverride minimum deployment target"
|
||||
display_help_licensing
|
||||
|
||||
echo -e "Architectures:"
|
||||
|
|
|
@ -18,7 +18,7 @@ set explicitly. When compilation ends, libraries are created under the prebuilt
|
|||
echo -e "Usage: ./$COMMAND [OPTION]...\n"
|
||||
echo -e "Specify environment variables as VARIABLE=VALUE to override default build options.\n"
|
||||
|
||||
display_help_options " -x, --xcframework\t\tbuild xcframework bundles instead of framework bundles and universal libraries" " -l, --lts build lts packages to support sdk 9.2+ devices"
|
||||
display_help_options " -x, --xcframework\t\tbuild xcframework bundles instead of framework bundles and universal libraries" " -l, --lts build lts packages to support sdk 9.2+ devices" " --target=tvos sdk version\toverride minimum deployment target"
|
||||
display_help_licensing
|
||||
|
||||
echo -e "Architectures:"
|
||||
|
|
|
@ -587,6 +587,9 @@ display_help_options() {
|
|||
if [ -n "$3" ]; then
|
||||
echo -e "$3"
|
||||
fi
|
||||
if [ -n "$4" ]; then
|
||||
echo -e "$4"
|
||||
fi
|
||||
echo -e ""
|
||||
}
|
||||
|
||||
|
@ -1814,3 +1817,31 @@ create_file() {
|
|||
rm -f "$1"
|
||||
echo "" > "$1" 1>>"${BASEDIR}"/build.log 2>&1
|
||||
}
|
||||
|
||||
compare_versions() {
|
||||
VERSION_PARTS_1=($(echo $1 | tr "." " "))
|
||||
VERSION_PARTS_2=($(echo $2 | tr "." " "))
|
||||
|
||||
for((i=0;(i<${#VERSION_PARTS_1[@]})&&(i<${#VERSION_PARTS_2[@]});i++))
|
||||
do
|
||||
|
||||
if [[ ${VERSION_PARTS_1[$i]} -gt ${VERSION_PARTS_2[$i]} ]]; then
|
||||
echo "1"
|
||||
return;
|
||||
elif [[ ${VERSION_PARTS_1[$i]} -lt ${VERSION_PARTS_2[$i]} ]]; then
|
||||
echo "-1"
|
||||
return;
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ ${#VERSION_PARTS_1[@]} -gt ${#VERSION_PARTS_2[@]} ]]; then
|
||||
echo "1"
|
||||
return;
|
||||
elif [[ ${#VERSION_PARTS_1[@]} -lt ${#VERSION_PARTS_2[@]} ]]; then
|
||||
echo "-1"
|
||||
return;
|
||||
else
|
||||
echo "0"
|
||||
return;
|
||||
fi
|
||||
}
|
||||
|
|
|
@ -23,8 +23,8 @@ fi
|
|||
# ENABLE COMMON FUNCTIONS
|
||||
source "${BASEDIR}"/scripts/function-"${FFMPEG_KIT_BUILD_TYPE}".sh 1>>"${BASEDIR}"/build.log 2>&1 || exit 1
|
||||
|
||||
echo -e "\nBuilding ${ARCH} platform\n"
|
||||
echo -e "\nINFO: Starting new build for ${ARCH} at $(date)\n" 1>>"${BASEDIR}"/build.log 2>&1
|
||||
echo -e "\nBuilding ${ARCH} platform targeting iOS SDK ${IOS_MIN_VERSION} and Mac Catalyst ${MAC_CATALYST_MIN_VERSION}\n"
|
||||
echo -e "\nINFO: Starting new build for ${ARCH} targeting iOS SDK ${IOS_MIN_VERSION} and Mac Catalyst ${MAC_CATALYST_MIN_VERSION} at $(date)\n" 1>>"${BASEDIR}"/build.log 2>&1
|
||||
|
||||
# SET BASE INSTALLATION DIRECTORY FOR THIS ARCHITECTURE
|
||||
export LIB_INSTALL_BASE="${BASEDIR}/prebuilt/$(get_build_directory)"
|
||||
|
|
|
@ -23,8 +23,8 @@ fi
|
|||
# ENABLE COMMON FUNCTIONS
|
||||
source "${BASEDIR}"/scripts/function-"${FFMPEG_KIT_BUILD_TYPE}".sh 1>>"${BASEDIR}"/build.log 2>&1 || exit 1
|
||||
|
||||
echo -e "\nBuilding ${ARCH} platform\n"
|
||||
echo -e "\nINFO: Starting new build for ${ARCH} at $(date)\n" 1>>"${BASEDIR}"/build.log 2>&1
|
||||
echo -e "\nBuilding ${ARCH} platform targeting macOS SDK ${MACOS_MIN_VERSION}\n"
|
||||
echo -e "\nINFO: Starting new build for ${ARCH} targeting macOS SDK ${MACOS_MIN_VERSION} at $(date)\n" 1>>"${BASEDIR}"/build.log 2>&1
|
||||
|
||||
# SET BASE INSTALLATION DIRECTORY FOR THIS ARCHITECTURE
|
||||
export LIB_INSTALL_BASE="${BASEDIR}/prebuilt/$(get_build_directory)"
|
||||
|
|
|
@ -23,8 +23,8 @@ fi
|
|||
# ENABLE COMMON FUNCTIONS
|
||||
source "${BASEDIR}"/scripts/function-"${FFMPEG_KIT_BUILD_TYPE}".sh 1>>"${BASEDIR}"/build.log 2>&1 || exit 1
|
||||
|
||||
echo -e "\nBuilding ${ARCH} platform\n"
|
||||
echo -e "\nINFO: Starting new build for ${ARCH} at $(date)\n" 1>>"${BASEDIR}"/build.log 2>&1
|
||||
echo -e "\nBuilding ${ARCH} platform targeting tvOS SDK ${TVOS_MIN_VERSION}\n"
|
||||
echo -e "\nINFO: Starting new build for ${ARCH} targeting tvOS SDK ${TVOS_MIN_VERSION} at $(date)\n" 1>>"${BASEDIR}"/build.log 2>&1
|
||||
|
||||
# SET BASE INSTALLATION DIRECTORY FOR THIS ARCHITECTURE
|
||||
export LIB_INSTALL_BASE="${BASEDIR}/prebuilt/$(get_build_directory)"
|
||||
|
|
Loading…
Reference in New Issue
Block a user