mirror of
git://code.qt.io/qt/qt5.git
synced 2026-02-24 16:05:36 +08:00
In the provisioning script 'install-ffmpeg-macos.sh', we have a variable
'prefix' controlling where to install the finalized library. The value
of this prefix is sometimes hardcoded into some of the temporary build
directories, making the script break if we actually modify the 'prefix'
variable. This means we currently cannot easily change the output directory.
This patch modifies 'install-ffmpeg-macos.sh' so that the 'prefix' is
applied consistently throughout the script, allowing us to change
the output directory in the future.
Pick-to: 6.8
Change-Id: Id0b1bb23513b7bccf02f0c4073e4177f651792dd
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
(cherry picked from commit 03d15483a1)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
68 lines
2.0 KiB
Bash
Executable File
68 lines
2.0 KiB
Bash
Executable File
#!/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 builds and installs FFmpeg shared libs
|
|
|
|
set -ex
|
|
|
|
os="$1"
|
|
|
|
if [ "$os" != "macos" ] && [ "$os" != "macos-universal" ]; then
|
|
>&2 echo "invalid os paremeter: $os"
|
|
exit 1
|
|
fi
|
|
|
|
source "${BASH_SOURCE%/*}/../unix/ffmpeg-installation-utils.sh"
|
|
|
|
ffmpeg_source_dir=$(download_ffmpeg)
|
|
ffmpeg_name=$(basename "$ffmpeg_source_dir")
|
|
ffmpeg_config_options=$(get_ffmpeg_config_options "shared")
|
|
prefix="/usr/local/$ffmpeg_name"
|
|
|
|
build_ffmpeg() {
|
|
local arch="$1"
|
|
local build_dir="$ffmpeg_source_dir/build/$arch"
|
|
mkdir -p "$build_dir"
|
|
pushd "$build_dir"
|
|
|
|
# shellcheck disable=SC2086
|
|
if [ -n "$arch" ]; then
|
|
local cc="clang -arch $arch"
|
|
"$ffmpeg_source_dir/configure" $ffmpeg_config_options --prefix="$prefix" --enable-cross-compile --arch="$arch" --cc="$cc"
|
|
else
|
|
"$ffmpeg_source_dir/configure" $ffmpeg_config_options --prefix="$prefix"
|
|
fi
|
|
# shellcheck disable=
|
|
|
|
make install DESTDIR="$build_dir/installed" -j4
|
|
popd
|
|
}
|
|
|
|
brew install yasm
|
|
export MACOSX_DEPLOYMENT_TARGET=12
|
|
fix_relative_dependencies="${BASH_SOURCE%/*}/../macos/fix_relative_dependencies.sh"
|
|
|
|
if [ "$os" == "macos" ]; then
|
|
build_ffmpeg
|
|
|
|
install_dir="$ffmpeg_source_dir/build/installed"
|
|
"$fix_relative_dependencies" "$install_dir$prefix/lib"
|
|
sudo mkdir -p "$prefix"
|
|
sudo mv "$install_dir$prefix" "$prefix/../"
|
|
else
|
|
build_ffmpeg "arm64"
|
|
build_ffmpeg "x86_64"
|
|
|
|
arm64_install_dir="$ffmpeg_source_dir/build/arm64/installed"
|
|
x86_64_install_dir="$ffmpeg_source_dir/build/x86_64/installed"
|
|
|
|
"$fix_relative_dependencies" "$arm64_install_dir$prefix/lib"
|
|
"$fix_relative_dependencies" "$x86_64_install_dir$prefix/lib"
|
|
|
|
sudo rm -rf "$prefix" # lipo fails upon 2nd run
|
|
sudo "${BASH_SOURCE%/*}/../macos/makeuniversal.sh" "$arm64_install_dir" "$x86_64_install_dir"
|
|
fi
|
|
|
|
set_ffmpeg_dir_env_var "FFMPEG_DIR" "$prefix"
|