66 lines
2.1 KiB
Bash
Executable File
66 lines
2.1 KiB
Bash
Executable File
#!/bin/sh
|
|
# Run from ffmpeg repo.
|
|
|
|
info() {
|
|
GREEN="\033[1;32m"
|
|
RESET="\033[0m"
|
|
echo "$GREEN==>$RESET $@"
|
|
}
|
|
|
|
info "Installing build dependencies of FFmpeg with Homebrew"
|
|
brew install --only-dependencies ffmpeg
|
|
brew install yasm
|
|
|
|
info "Installing build dependencies for cross build with Homebrew"
|
|
arch -x86_64 /usr/local/bin/brew install --only-dependencies ffmpeg
|
|
|
|
ARCHS="arm64 x86_64"
|
|
LIBS="libavcodec libavformat libavutil libswresample"
|
|
BASEDIR=$(dirname "$0")
|
|
COG_FFMPEG_PREFIX="$BASEDIR/../ThirdParty/ffmpeg"
|
|
|
|
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:"$BASEDIR/../ThirdParty/fdk-aac/lib/pkgconfig"
|
|
|
|
for arch in $ARCHS; do
|
|
info "Building FFmpeg for $arch"
|
|
$BASEDIR/ffmpeg-build-$arch.sh $COG_FFMPEG_PREFIX
|
|
rm -rf $COG_FFMPEG_PREFIX/pkgconfig
|
|
rm -rf $COG_FFMPEG_PREFIX/share
|
|
# Workaround Xcode linking error
|
|
git clean -ffdx > /dev/null 2>&1
|
|
done
|
|
|
|
all_out_libs=""
|
|
for lib in $LIBS; do
|
|
out_lib=$(find -E "$COG_FFMPEG_PREFIX/arm64/lib" -type l -regex ".*/$lib\.[0-9]+\.dylib")
|
|
out_lib=$(echo "$out_lib" | awk -F "/" '{ print $NF }')
|
|
all_out_libs="$all_out_libs $out_lib"
|
|
done
|
|
|
|
echo "all_out_libs: $all_out_libs"
|
|
|
|
mkdir -p $COG_FFMPEG_PREFIX/lib
|
|
for lib in $LIBS; do
|
|
out_lib=$(find -E "$COG_FFMPEG_PREFIX/arm64/lib" -type l -regex ".*/$lib\.[0-9]+\.dylib")
|
|
out_lib=$(echo "$out_lib" | awk -F "/" '{ print $NF }')
|
|
all_libs=""
|
|
all_symlinks=""
|
|
for arch in $ARCHS; do
|
|
libs=$(find -E "$COG_FFMPEG_PREFIX/$arch/lib" -type f -regex ".*/$lib\..*\.dylib")
|
|
symlinks=$(find -E "$COG_FFMPEG_PREFIX/$arch/lib" -type l -regex ".*/$lib\..*dylib")
|
|
all_libs="$all_libs $libs"
|
|
all_symlinks="$all_symlinks $symlinks"
|
|
# clean up ids and import paths
|
|
install_name_tool -id "@rpath/$out_lib" $libs
|
|
for temp_out_lib in $all_out_libs; do
|
|
install_name_tool -change "$COG_FFMPEG_PREFIX/$arch/lib/$temp_out_lib" "@rpath/$temp_out_lib" $libs
|
|
done
|
|
done
|
|
info "Making $lib universal"
|
|
lipo -create -output $COG_FFMPEG_PREFIX/lib/$out_lib $all_libs
|
|
rm $all_libs
|
|
rm $all_symlinks
|
|
done
|
|
|
|
info "Done!"
|