mirror of
git://code.qt.io/qt/qt5.git
synced 2026-04-26 22:58:17 +08:00
QtMultimedia - build ffmpeg plugin for iOS
Minimal preliminary script for building ffmpeg for iOS. Change-Id: Ie210db8cd50b5a757fcc6d6258c3ebdf4fc53c51 Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io> Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
This commit is contained in:
committed by
Artem Dyomin
parent
b9214c7dd9
commit
65695bc38b
75
coin/provisioning/common/unix/install-ffmpeg-ios.sh
Executable file
75
coin/provisioning/common/unix/install-ffmpeg-ios.sh
Executable file
@@ -0,0 +1,75 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (C) 2024 The Qt Company Ltd.
|
||||
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||
|
||||
# This script will build and install FFmpeg static libs
|
||||
set -ex
|
||||
|
||||
# shellcheck source=../unix/InstallFromCompressedFileFromURL.sh
|
||||
source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
|
||||
# shellcheck source=../unix/SetEnvVar.sh
|
||||
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
|
||||
|
||||
version="n6.1"
|
||||
sha1="1feb946476f3076a9b38c97ca0d8b69e1826049c"
|
||||
url_public="https://github.com/FFmpeg/FFmpeg/archive/refs/tags/$version.tar.gz"
|
||||
url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/$version.tar.gz"
|
||||
ffmpeg_name="FFmpeg-$version"
|
||||
|
||||
target_dir="$HOME"
|
||||
ffmpeg_source_dir="$target_dir/$ffmpeg_name"
|
||||
prefix="/usr/local/ios/ffmpeg"
|
||||
|
||||
if [ ! -d "$ffmpeg_source_dir" ];
|
||||
then
|
||||
InstallFromCompressedFileFromURL "$url_cached" "$url_public" "$sha1" "$target_dir" "$app_prefix"
|
||||
fi
|
||||
|
||||
ffmpeg_config_options=$(cat "${BASH_SOURCE%/*}/../shared/ffmpeg_config_options.txt")
|
||||
|
||||
build_ffmpeg_ios() {
|
||||
local target_arch=$1
|
||||
|
||||
if [ "$target_arch" == "x86_64" ]; then
|
||||
target_sdk="iphonesimulator"
|
||||
target_arch="x86_64"
|
||||
minos="-mios-simulator-version-min=13.0"
|
||||
else
|
||||
target_sdk="iphoneos"
|
||||
target_arch="arm64"
|
||||
minos="-miphoneos-version-min=13.0"
|
||||
fi
|
||||
|
||||
local build_dir="$ffmpeg_source_dir/build_ios/$target_arch"
|
||||
sudo mkdir -p "$build_dir"
|
||||
pushd "$build_dir"
|
||||
|
||||
sudo $ffmpeg_source_dir/configure $ffmpeg_config_options \
|
||||
--sysroot="$(xcrun --sdk "$target_sdk" --show-sdk-path)" \
|
||||
--enable-cross-compile \
|
||||
--enable-optimizations \
|
||||
--prefix=$prefix \
|
||||
--arch=$target_arch \
|
||||
--cc="xcrun --sdk ${target_sdk} clang -arch $target_arch" \
|
||||
--cxx="xcrun --sdk ${target_sdk} clang++ -arch $target_arch" \
|
||||
--ar="$(xcrun --sdk ${target_sdk} --find ar)" \
|
||||
--ranlib="$(xcrun --sdk ${target_sdk} --find ranlib)" \
|
||||
--strip="$(xcrun --sdk ${target_sdk} --find strip)" \
|
||||
--nm="$(xcrun --sdk ${target_sdk} --find nm)" \
|
||||
--target-os=darwin \
|
||||
--extra-cflags="$minos" \
|
||||
--extra-cxxflags="$minos" \
|
||||
--enable-cross-compile \
|
||||
--enable-swscale \
|
||||
--enable-pthreads \
|
||||
--disable-audiotoolbox
|
||||
|
||||
sudo make install DESTDIR="$build_dir/installed" -j
|
||||
popd
|
||||
}
|
||||
|
||||
build_ffmpeg_ios "x86_64"
|
||||
build_ffmpeg_ios "arm64"
|
||||
sudo "${BASH_SOURCE%/*}/../macos/makeuniversal.sh" "$ffmpeg_source_dir/build_ios/x86_64/installed" "$ffmpeg_source_dir/build_ios/arm64/installed"
|
||||
SetEnvVar "FFMPEG_DIR_IOS" $prefix
|
||||
|
||||
@@ -6,3 +6,4 @@ set -ex
|
||||
|
||||
source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "macos-universal"
|
||||
source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-android.sh" "android-arm64"
|
||||
source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-ios.sh"
|
||||
|
||||
Reference in New Issue
Block a user