2020-08-05 03:53:02 +03:00
#!/bin/bash
2020-11-23 00:51:45 +02:00
source " ${ BASEDIR } /scripts/function-apple.sh "
2020-08-05 03:53:02 +03:00
enable_default_tvos_architectures( ) {
ENABLED_ARCHITECTURES[ ARCH_ARM64] = 1
ENABLED_ARCHITECTURES[ ARCH_X86_64] = 1
2021-02-27 14:33:12 +02:00
ENABLED_ARCHITECTURES[ ARCH_ARM64_SIMULATOR] = 1
2020-08-05 03:53:02 +03:00
}
display_help( ) {
COMMAND = $( echo " $0 " | sed -e 's/\.\///g' )
2021-02-27 14:33:12 +02:00
echo -e " \n' $COMMAND ' builds FFmpegKit for tvOS platform. By default three architectures (arm64, arm64-simulator \
and x86-64) are enabled without any external libraries. Options can be used to disable architectures and/or enable \
external libraries. Please note that GPL libraries ( external libraries with GPL license) need --enable-gpl flag to be \
set explicitly. When compilation ends, libraries are created under the prebuilt folder.\n "
2020-08-05 03:53:02 +03:00
echo -e " Usage: ./ $COMMAND [OPTION]...\n "
echo -e "Specify environment variables as VARIABLE=VALUE to override default build options.\n"
2021-10-31 23:50:08 +02:00
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 [11.0]"
2020-08-05 03:53:02 +03:00
display_help_licensing
echo -e "Architectures:"
echo -e " --disable-arm64\t\tdo not build arm64 architecture [yes]"
2021-02-27 14:33:12 +02:00
echo -e " --disable-arm64-simulator\tdo not build arm64-simulator architecture [yes]"
2020-08-05 03:53:02 +03:00
echo -e " --disable-x86-64\t\tdo not build x86-64 architecture [yes]\n"
echo -e "Libraries:"
echo -e " --full\t\t\tenables all non-GPL external libraries"
echo -e " --enable-tvos-audiotoolbox\tbuild with built-in Apple AudioToolbox support [no]"
echo -e " --enable-tvos-bzip2\t\tbuild with built-in bzip2 support [no]"
if [ [ -z ${ FFMPEG_KIT_LTS_BUILD } ] ] ; then
echo -e " --enable-tvos-videotoolbox\tbuild with built-in Apple VideoToolbox support [no]"
fi
echo -e " --enable-tvos-zlib\t\tbuild with built-in zlib [no]"
echo -e " --enable-tvos-libiconv\tbuild with built-in libiconv [no]"
display_help_common_libraries
display_help_gpl_libraries
2021-01-27 01:34:56 +02:00
if [ [ -n ${ FFMPEG_KIT_XCF_BUILD } ] ] ; then
display_help_advanced_options " --no-framework\t\tdo not build xcframework bundles [no]"
else
display_help_advanced_options " --no-framework\t\tdo not build framework bundles and universal libraries [no]"
fi
2020-08-05 03:53:02 +03:00
}
enable_main_build( ) {
2021-11-02 00:19:28 +02:00
if [ [ $( compare_versions " $DETECTED_TVOS_SDK_VERSION " "11.0" ) -le 0 ] ] ; then
export TVOS_MIN_VERSION = $DETECTED_TVOS_SDK_VERSION
else
export TVOS_MIN_VERSION = 11.0
fi
2020-08-05 03:53:02 +03:00
}
enable_lts_build( ) {
export FFMPEG_KIT_LTS_BUILD = "1"
2021-11-02 00:19:28 +02:00
if [ [ $( compare_versions " $DETECTED_TVOS_SDK_VERSION " "9.2" ) -le 0 ] ] ; then
export TVOS_MIN_VERSION = $DETECTED_TVOS_SDK_VERSION
else
# XCODE 7.3 HAS TVOS SDK 9.2
export TVOS_MIN_VERSION = 9.2
fi
2020-08-05 03:53:02 +03:00
# TVOS SDK 9.2 DOES NOT INCLUDE VIDEOTOOLBOX
ENABLED_LIBRARIES[ LIBRARY_VIDEOTOOLBOX] = 0
}
get_common_includes( ) {
echo " -I ${ SDK_PATH } /usr/include "
}
get_common_cflags( ) {
if [ [ -n ${ FFMPEG_KIT_LTS_BUILD } ] ] ; then
local LTS_BUILD_FLAG = "-DFFMPEG_KIT_LTS "
fi
local BUILD_DATE = " -DFFMPEG_KIT_BUILD_DATE= $( date +%Y%m%d 2>>" ${ BASEDIR } " /build.log) "
case ${ ARCH } in
2020-11-23 00:51:45 +02:00
arm64)
2020-08-05 03:53:02 +03:00
echo " -fstrict-aliasing -fembed-bitcode -DTVOS ${ LTS_BUILD_FLAG } ${ BUILD_DATE } -isysroot ${ SDK_PATH } "
; ;
2021-02-27 14:33:12 +02:00
x86-64 | arm64-simulator)
2020-11-23 00:51:45 +02:00
echo " -fstrict-aliasing -DTVOS ${ LTS_BUILD_FLAG } ${ BUILD_DATE } -isysroot ${ SDK_PATH } "
; ;
2020-08-05 03:53:02 +03:00
esac
}
get_arch_specific_cflags( ) {
case ${ ARCH } in
arm64)
2020-11-23 00:51:45 +02:00
echo " -arch arm64 -target $( get_target) -march=armv8-a+crc+crypto -mcpu=generic -DFFMPEG_KIT_ARM64 "
2020-08-05 03:53:02 +03:00
; ;
2021-02-27 14:33:12 +02:00
arm64-simulator)
echo " -arch arm64 -target $( get_target) -march=armv8-a+crc+crypto -mcpu=generic -DFFMPEG_KIT_ARM64_SIMULATOR "
; ;
2020-08-05 03:53:02 +03:00
x86-64)
2021-10-06 23:13:07 +03:00
echo " -arch x86_64 -target $( get_target) -march=x86-64 -msse4.2 -mpopcnt -m64 -DFFMPEG_KIT_X86_64 "
2020-08-05 03:53:02 +03:00
; ;
esac
}
get_size_optimization_cflags( ) {
local ARCH_OPTIMIZATION = ""
case ${ ARCH } in
arm64)
case $1 in
x264 | x265)
ARCH_OPTIMIZATION = "-Oz -Wno-ignored-optimization-argument"
; ;
ffmpeg | ffmpeg-kit)
ARCH_OPTIMIZATION = "-Oz -Wno-ignored-optimization-argument"
; ;
*)
ARCH_OPTIMIZATION = "-Oz -Wno-ignored-optimization-argument"
; ;
esac
; ;
2021-02-27 14:33:12 +02:00
x86-64 | arm64-simulator)
2020-08-05 03:53:02 +03:00
case $1 in
x264 | ffmpeg)
ARCH_OPTIMIZATION = "-O2 -Wno-ignored-optimization-argument"
; ;
x265)
ARCH_OPTIMIZATION = "-O2 -Wno-ignored-optimization-argument"
; ;
*)
ARCH_OPTIMIZATION = "-O2 -Wno-ignored-optimization-argument"
; ;
esac
; ;
esac
echo " ${ ARCH_OPTIMIZATION } "
}
get_size_optimization_asm_cflags( ) {
local ARCH_OPTIMIZATION = ""
case $1 in
jpeg | ffmpeg)
case ${ ARCH } in
arm64)
ARCH_OPTIMIZATION = "-Oz"
; ;
2021-02-27 14:33:12 +02:00
x86-64 | arm64-simulator)
2020-08-05 03:53:02 +03:00
ARCH_OPTIMIZATION = "-O2"
; ;
esac
; ;
*)
ARCH_OPTIMIZATION = $( get_size_optimization_cflags " $1 " )
; ;
esac
echo " ${ ARCH_OPTIMIZATION } "
}
get_app_specific_cflags( ) {
local APP_FLAGS = ""
case $1 in
fontconfig)
case ${ ARCH } in
arm64)
APP_FLAGS = "-std=c99 -Wno-unused-function -D__IPHONE_OS_MIN_REQUIRED -D__IPHONE_VERSION_MIN_REQUIRED=30000"
; ;
*)
APP_FLAGS = "-std=c99 -Wno-unused-function"
; ;
esac
; ;
ffmpeg)
APP_FLAGS = "-Wno-unused-function -Wno-deprecated-declarations"
; ;
jpeg)
APP_FLAGS = "-Wno-nullability-completeness"
; ;
kvazaar)
APP_FLAGS = "-std=gnu99 -Wno-unused-function"
; ;
leptonica)
APP_FLAGS = "-std=c99 -Wno-unused-function -DOS_IOS"
; ;
libwebp | xvidcore)
APP_FLAGS = "-fno-common -DPIC"
; ;
ffmpeg-kit)
APP_FLAGS = "-std=c99 -Wno-unused-function -Wall -Wno-deprecated-declarations -Wno-pointer-sign -Wno-switch -Wno-unused-result -Wno-unused-variable -DPIC -fobjc-arc"
; ;
2020-11-23 00:51:45 +02:00
sdl)
2020-08-05 03:53:02 +03:00
APP_FLAGS = "-DPIC -Wno-unused-function -D__TVOS__"
; ;
shine)
APP_FLAGS = "-Wno-unused-function"
; ;
soxr | snappy)
APP_FLAGS = "-std=gnu99 -Wno-unused-function -DPIC"
; ;
openh264 | x265)
APP_FLAGS = "-Wno-unused-function"
; ;
*)
APP_FLAGS = "-std=c99 -Wno-unused-function"
; ;
esac
echo " ${ APP_FLAGS } "
}
get_cflags( ) {
local ARCH_FLAGS = $( get_arch_specific_cflags)
local APP_FLAGS = $( get_app_specific_cflags " $1 " )
local COMMON_FLAGS = $( get_common_cflags)
if [ [ -z ${ FFMPEG_KIT_DEBUG } ] ] ; then
local OPTIMIZATION_FLAGS = $( get_size_optimization_cflags " $1 " )
else
local OPTIMIZATION_FLAGS = " ${ FFMPEG_KIT_DEBUG } "
fi
local MIN_VERSION_FLAGS = $( get_min_version_cflags " $1 " )
local COMMON_INCLUDES = $( get_common_includes)
echo " ${ ARCH_FLAGS } ${ APP_FLAGS } ${ COMMON_FLAGS } ${ OPTIMIZATION_FLAGS } ${ MIN_VERSION_FLAGS } ${ COMMON_INCLUDES } "
}
get_asmflags( ) {
local ARCH_FLAGS = $( get_arch_specific_cflags)
local APP_FLAGS = $( get_app_specific_cflags " $1 " )
local COMMON_FLAGS = $( get_common_cflags)
if [ [ -z ${ FFMPEG_KIT_DEBUG } ] ] ; then
local OPTIMIZATION_FLAGS = $( get_size_optimization_asm_cflags " $1 " )
else
local OPTIMIZATION_FLAGS = " ${ FFMPEG_KIT_DEBUG } "
fi
local MIN_VERSION_FLAGS = $( get_min_version_cflags " $1 " )
local COMMON_INCLUDES = $( get_common_includes)
echo " ${ ARCH_FLAGS } ${ APP_FLAGS } ${ COMMON_FLAGS } ${ OPTIMIZATION_FLAGS } ${ MIN_VERSION_FLAGS } ${ COMMON_INCLUDES } "
}
get_cxxflags( ) {
local COMMON_CFLAGS = " $( get_common_cflags " $1 " ) $( get_common_includes " $1 " ) $( get_arch_specific_cflags) $( get_min_version_cflags " $1 " ) "
if [ [ -z ${ FFMPEG_KIT_DEBUG } ] ] ; then
local OPTIMIZATION_FLAGS = "-Oz"
else
local OPTIMIZATION_FLAGS = " ${ FFMPEG_KIT_DEBUG } "
fi
local BITCODE_FLAGS = ""
case ${ ARCH } in
arm64)
local BITCODE_FLAGS = "-fembed-bitcode"
; ;
esac
case $1 in
x265)
echo " -std=c++11 -fno-exceptions ${ BITCODE_FLAGS } ${ COMMON_CFLAGS } "
; ;
gnutls)
echo " -std=c++11 -fno-rtti ${ BITCODE_FLAGS } ${ COMMON_CFLAGS } ${ OPTIMIZATION_FLAGS } "
; ;
libwebp | xvidcore)
echo " -std=c++11 -fno-exceptions -fno-rtti ${ BITCODE_FLAGS } -fno-common -DPIC ${ COMMON_CFLAGS } ${ OPTIMIZATION_FLAGS } "
; ;
libaom)
echo " -std=c++11 -fno-exceptions ${ BITCODE_FLAGS } ${ COMMON_CFLAGS } ${ OPTIMIZATION_FLAGS } "
; ;
opencore-amr)
echo " -fno-rtti ${ BITCODE_FLAGS } ${ COMMON_CFLAGS } ${ OPTIMIZATION_FLAGS } "
; ;
rubberband)
echo " -fno-rtti ${ BITCODE_FLAGS } ${ COMMON_CFLAGS } ${ OPTIMIZATION_FLAGS } "
; ;
*)
echo " -std=c++11 -fno-exceptions -fno-rtti ${ BITCODE_FLAGS } ${ COMMON_CFLAGS } ${ OPTIMIZATION_FLAGS } "
; ;
esac
}
get_common_linked_libraries( ) {
echo " -L ${ SDK_PATH } /usr/lib -lc++ "
}
get_common_ldflags( ) {
2021-11-02 00:19:28 +02:00
echo " -isysroot ${ SDK_PATH } $( get_min_version_cflags) "
2020-08-05 03:53:02 +03:00
}
get_size_optimization_ldflags( ) {
case ${ ARCH } in
arm64)
case $1 in
ffmpeg | ffmpeg-kit)
echo "-Oz -dead_strip"
; ;
*)
echo "-Oz -dead_strip"
; ;
esac
; ;
*)
case $1 in
ffmpeg)
echo "-O2"
; ;
*)
echo "-O2"
; ;
esac
; ;
esac
}
get_arch_specific_ldflags( ) {
case ${ ARCH } in
arm64)
echo "-arch arm64 -march=armv8-a+crc+crypto -fembed-bitcode"
; ;
2021-02-27 14:33:12 +02:00
arm64-simulator)
echo "-arch arm64 -march=armv8-a+crc+crypto"
; ;
2020-08-05 03:53:02 +03:00
x86-64)
echo "-arch x86_64 -march=x86-64"
; ;
esac
}
get_ldflags( ) {
local ARCH_FLAGS = $( get_arch_specific_ldflags)
local LINKED_LIBRARIES = $( get_common_linked_libraries)
if [ [ -z ${ FFMPEG_KIT_DEBUG } ] ] ; then
local OPTIMIZATION_FLAGS = " $( get_size_optimization_ldflags " $1 " ) "
else
local OPTIMIZATION_FLAGS = " ${ FFMPEG_KIT_DEBUG } "
fi
local COMMON_FLAGS = $( get_common_ldflags)
case $1 in
ffmpeg-kit)
case ${ ARCH } in
arm64)
echo " ${ ARCH_FLAGS } ${ LINKED_LIBRARIES } ${ COMMON_FLAGS } -fembed-bitcode -Wc,-fembed-bitcode ${ OPTIMIZATION_FLAGS } "
; ;
*)
echo " ${ ARCH_FLAGS } ${ LINKED_LIBRARIES } ${ COMMON_FLAGS } ${ OPTIMIZATION_FLAGS } "
; ;
esac
; ;
*)
2021-10-28 14:22:29 +03:00
# NOTE THAT ffmpeg ALSO NEEDS BITCODE, IT IS ENABLED IN ffmpeg.sh
2020-08-05 03:53:02 +03:00
echo " ${ ARCH_FLAGS } ${ LINKED_LIBRARIES } ${ COMMON_FLAGS } ${ OPTIMIZATION_FLAGS } "
; ;
esac
}
set_toolchain_paths( ) {
if [ ! -f " ${ FFMPEG_KIT_TMPDIR } /gas-preprocessor.pl " ] ; then
2021-09-17 15:32:38 +03:00
DOWNLOAD_RESULT = $( download "https://github.com/tanersener/gas-preprocessor/raw/v20210917/gas-preprocessor.pl" "gas-preprocessor.pl" "exit" )
2020-08-05 03:53:02 +03:00
if [ [ ${ DOWNLOAD_RESULT } -ne 0 ] ] ; then
exit 1
fi
( chmod +x " ${ FFMPEG_KIT_TMPDIR } " /gas-preprocessor.pl 1>>" ${ BASEDIR } " /build.log 2>& 1) || exit 1
# patch gas-preprocessor.pl against the following warning
# Unescaped left brace in regex is deprecated here (and will be fatal in Perl 5.32), passed through in regex; marked by <-- HERE in m/(?:ld|st)\d\s+({ <-- HERE \s*v(\d+)\.(\d[bhsdBHSD])\s*-\s*v(\d+)\.(\d[bhsdBHSD])\s*})/ at /Users/taner/Projects/ffmpeg-kit/.tmp/gas-preprocessor.pl line 1065.
sed -i .tmp "s/s\+({/s\+(\\\\{/g;s/s\*})/s\*\\\\})/g" " ${ FFMPEG_KIT_TMPDIR } " /gas-preprocessor.pl
fi
LOCAL_GAS_PREPROCESSOR = " ${ FFMPEG_KIT_TMPDIR } /gas-preprocessor.pl "
if [ " $1 " = = "x264" ] ; then
LOCAL_GAS_PREPROCESSOR = " ${ BASEDIR } /src/x264/tools/gas-preprocessor.pl "
fi
2020-11-23 00:51:45 +02:00
HOST = $( get_host)
2020-08-05 03:53:02 +03:00
2021-03-02 01:25:17 +02:00
export AR = " $( xcrun --sdk " $( get_sdk_name) " -f ar 2>>" ${ BASEDIR } " /build.log) "
2020-08-05 03:53:02 +03:00
export CC = "clang"
2021-03-02 01:25:17 +02:00
export OBJC = " $( xcrun --sdk " $( get_sdk_name) " -f clang 2>>" ${ BASEDIR } " /build.log) "
2020-08-05 03:53:02 +03:00
export CXX = "clang++"
LOCAL_ASMFLAGS = " $( get_asmflags " $1 " ) "
case ${ ARCH } in
2021-02-27 14:33:12 +02:00
arm64*)
2020-08-05 03:53:02 +03:00
if [ " $1 " = = "x265" ] ; then
export AS = " ${ LOCAL_GAS_PREPROCESSOR } "
export AS_ARGUMENTS = "-arch aarch64"
export ASM_FLAGS = " ${ LOCAL_ASMFLAGS } "
else
export AS = " ${ LOCAL_GAS_PREPROCESSOR } -arch aarch64 -- ${ CC } ${ LOCAL_ASMFLAGS } "
fi
; ;
*)
export AS = " ${ CC } ${ LOCAL_ASMFLAGS } "
; ;
esac
2021-03-02 01:25:17 +02:00
export LD = " $( xcrun --sdk " $( get_sdk_name) " -f ld 2>>" ${ BASEDIR } " /build.log) "
export RANLIB = " $( xcrun --sdk " $( get_sdk_name) " -f ranlib 2>>" ${ BASEDIR } " /build.log) "
export STRIP = " $( xcrun --sdk " $( get_sdk_name) " -f strip 2>>" ${ BASEDIR } " /build.log) "
export NM = " $( xcrun --sdk " $( get_sdk_name) " -f nm 2>>" ${ BASEDIR } " /build.log) "
2020-08-05 03:53:02 +03:00
2020-11-23 00:51:45 +02:00
export INSTALL_PKG_CONFIG_DIR = " ${ BASEDIR } /prebuilt/ $( get_build_directory) /pkgconfig "
2020-08-05 03:53:02 +03:00
export ZLIB_PACKAGE_CONFIG_PATH = " ${ INSTALL_PKG_CONFIG_DIR } /zlib.pc "
export BZIP2_PACKAGE_CONFIG_PATH = " ${ INSTALL_PKG_CONFIG_DIR } /bzip2.pc "
export LIB_ICONV_PACKAGE_CONFIG_PATH = " ${ INSTALL_PKG_CONFIG_DIR } /libiconv.pc "
export LIB_UUID_PACKAGE_CONFIG_PATH = " ${ INSTALL_PKG_CONFIG_DIR } /uuid.pc "
if [ ! -d " ${ INSTALL_PKG_CONFIG_DIR } " ] ; then
mkdir -p " ${ INSTALL_PKG_CONFIG_DIR } "
fi
if [ ! -f " ${ ZLIB_PACKAGE_CONFIG_PATH } " ] ; then
create_zlib_system_package_config
fi
if [ ! -f " ${ LIB_ICONV_PACKAGE_CONFIG_PATH } " ] ; then
create_libiconv_system_package_config
fi
if [ ! -f " ${ BZIP2_PACKAGE_CONFIG_PATH } " ] ; then
create_bzip2_system_package_config
fi
if [ ! -f " ${ LIB_UUID_PACKAGE_CONFIG_PATH } " ] ; then
create_libuuid_system_package_config
fi
prepare_inline_sed
}
2020-11-23 00:51:45 +02:00
initialize_prebuilt_tvos_folders( ) {
if [ [ -n ${ FFMPEG_KIT_XCF_BUILD } ] ] ; then
echo -e "DEBUG: Initializing universal directories and frameworks for xcf builds\n" 1>>" ${ BASEDIR } " /build.log 2>& 1
2021-01-09 18:24:56 +02:00
if [ [ $( is_apple_architecture_variant_supported " ${ ARCH_VAR_APPLETVOS } " ) -eq 1 ] ] ; then
2021-11-02 00:19:28 +02:00
initialize_folder " ${ BASEDIR } /.tmp/ $( get_universal_library_directory " ${ ARCH_VAR_APPLETVOS } " ) "
2021-02-28 15:43:12 +02:00
initialize_folder " ${ BASEDIR } /prebuilt/ $( get_framework_directory " ${ ARCH_VAR_APPLETVOS } " ) "
2020-11-23 00:51:45 +02:00
fi
2021-01-09 18:24:56 +02:00
if [ [ $( is_apple_architecture_variant_supported " ${ ARCH_VAR_APPLETVSIMULATOR } " ) -eq 1 ] ] ; then
2021-11-02 00:19:28 +02:00
initialize_folder " ${ BASEDIR } /.tmp/ $( get_universal_library_directory " ${ ARCH_VAR_APPLETVSIMULATOR } " ) "
2021-02-28 15:43:12 +02:00
initialize_folder " ${ BASEDIR } /prebuilt/ $( get_framework_directory " ${ ARCH_VAR_APPLETVSIMULATOR } " ) "
2020-11-23 00:51:45 +02:00
fi
echo -e " DEBUG: Initializing xcframework directory at ${ BASEDIR } /prebuilt/ $( get_xcframework_directory) \n " 1>>" ${ BASEDIR } " /build.log 2>& 1
# XCF BUILDS GENERATE XCFFRAMEWORKS
2021-02-28 15:43:12 +02:00
initialize_folder " ${ BASEDIR } /prebuilt/ $( get_xcframework_directory) "
2020-11-23 00:51:45 +02:00
else
2021-11-02 00:19:28 +02:00
echo -e " DEBUG: Initializing default universal directory at ${ BASEDIR } /.tmp/ $( get_universal_library_directory " ${ ARCH_VAR_TVOS } " ) \n " 1>>" ${ BASEDIR } " /build.log 2>& 1
2020-11-23 00:51:45 +02:00
# DEFAULT BUILDS GENERATE UNIVERSAL LIBRARIES AND FRAMEWORKS
2021-11-02 00:19:28 +02:00
initialize_folder " ${ BASEDIR } /.tmp/ $( get_universal_library_directory " ${ ARCH_VAR_TVOS } " ) "
2020-11-23 00:51:45 +02:00
2021-01-09 18:24:56 +02:00
echo -e " DEBUG: Initializing framework directory at ${ BASEDIR } /prebuilt/ $( get_framework_directory " ${ ARCH_VAR_TVOS } " ) \n " 1>>" ${ BASEDIR } " /build.log 2>& 1
2020-11-23 00:51:45 +02:00
2021-02-28 15:43:12 +02:00
initialize_folder " ${ BASEDIR } /prebuilt/ $( get_framework_directory " ${ ARCH_VAR_TVOS } " ) "
2020-11-23 00:51:45 +02:00
fi
}
#
# DEPENDS TARGET_ARCH_LIST VARIABLE
#
create_universal_libraries_for_tvos_default_frameworks( ) {
2021-11-02 00:19:28 +02:00
local ROOT_UNIVERSAL_DIRECTORY_PATH = " ${ BASEDIR } /.tmp/ $( get_universal_library_directory " ${ ARCH_VAR_TVOS } " ) "
2020-11-23 00:51:45 +02:00
echo -e " INFO: Building universal libraries in ${ ROOT_UNIVERSAL_DIRECTORY_PATH } for default frameworks using ${ TARGET_ARCH_LIST [@] } \n " 1>>" ${ BASEDIR } " /build.log 2>& 1
2021-01-09 18:24:56 +02:00
create_ffmpeg_universal_library " ${ ARCH_VAR_TVOS } "
2020-11-23 00:51:45 +02:00
2021-01-09 18:24:56 +02:00
create_ffmpeg_kit_universal_library " ${ ARCH_VAR_TVOS } "
2020-11-23 00:51:45 +02:00
echo -e "INFO: Universal libraries for default frameworks built successfully\n" 1>>" ${ BASEDIR } " /build.log 2>& 1
}
create_tvos_default_frameworks( ) {
echo -e "INFO: Building default frameworks\n" 1>>" ${ BASEDIR } " /build.log 2>& 1
2021-01-09 18:24:56 +02:00
create_ffmpeg_framework " ${ ARCH_VAR_TVOS } "
2020-11-23 00:51:45 +02:00
2021-01-09 18:24:56 +02:00
create_ffmpeg_kit_framework " ${ ARCH_VAR_TVOS } "
2020-11-23 00:51:45 +02:00
echo -e "INFO: Default frameworks built successfully\n" 1>>" ${ BASEDIR } " /build.log 2>& 1
}
create_universal_libraries_for_tvos_xcframeworks( ) {
echo -e " INFO: Building universal libraries for xcframeworks using ${ TARGET_ARCH_LIST [@] } \n " 1>>" ${ BASEDIR } " /build.log 2>& 1
2021-01-09 18:24:56 +02:00
create_ffmpeg_universal_library " ${ ARCH_VAR_APPLETVOS } "
create_ffmpeg_universal_library " ${ ARCH_VAR_APPLETVSIMULATOR } "
2020-11-23 00:51:45 +02:00
2021-01-09 18:24:56 +02:00
create_ffmpeg_kit_universal_library " ${ ARCH_VAR_APPLETVOS } "
create_ffmpeg_kit_universal_library " ${ ARCH_VAR_APPLETVSIMULATOR } "
2020-11-23 00:51:45 +02:00
echo -e "INFO: Universal libraries for xcframeworks built successfully\n" 1>>" ${ BASEDIR } " /build.log 2>& 1
}
create_frameworks_for_tvos_xcframeworks( ) {
echo -e "INFO: Building frameworks for xcframeworks\n" 1>>" ${ BASEDIR } " /build.log 2>& 1
2021-01-09 18:24:56 +02:00
create_ffmpeg_framework " ${ ARCH_VAR_APPLETVOS } "
create_ffmpeg_framework " ${ ARCH_VAR_APPLETVSIMULATOR } "
2020-11-23 00:51:45 +02:00
2021-01-09 18:24:56 +02:00
create_ffmpeg_kit_framework " ${ ARCH_VAR_APPLETVOS } "
create_ffmpeg_kit_framework " ${ ARCH_VAR_APPLETVSIMULATOR } "
2020-11-23 00:51:45 +02:00
echo -e "INFO: Frameworks for xcframeworks built successfully\n" 1>>" ${ BASEDIR } " /build.log 2>& 1
}
create_tvos_xcframeworks( ) {
2021-01-09 18:24:56 +02:00
export ARCHITECTURE_VARIANT_ARRAY = ( " ${ ARCH_VAR_APPLETVOS } " " ${ ARCH_VAR_APPLETVSIMULATOR } " )
2020-11-23 00:51:45 +02:00
echo -e "INFO: Building xcframeworks\n" 1>>" ${ BASEDIR } " /build.log 2>& 1
create_ffmpeg_xcframework
create_ffmpeg_kit_xcframework
echo -e "INFO: xcframeworks built successfully\n" 1>>" ${ BASEDIR } " /build.log 2>& 1
}