mirror of
https://github.com/BtbN/FFmpeg-Builds.git
synced 2025-06-12 21:37:38 +02:00
Add support for Linux aarch64 builds
This commit is contained in:
@ -29,11 +29,16 @@ ffbuild_dockerbuild() {
|
||||
--enable-threads
|
||||
--with-combined-threads
|
||||
--with-incoming-stack-boundary=2
|
||||
--enable-sse2
|
||||
--enable-avx
|
||||
--enable-avx2
|
||||
)
|
||||
|
||||
if [[ $TARGET != *arm64 ]]; then
|
||||
myconf+=(
|
||||
--enable-sse2
|
||||
--enable-avx
|
||||
--enable-avx2
|
||||
)
|
||||
fi
|
||||
|
||||
if [[ $TARGET == win* || $TARGET == linux* ]]; then
|
||||
myconf+=(
|
||||
--host="$FFBUILD_TOOLCHAIN"
|
||||
|
@ -36,6 +36,11 @@ ffbuild_dockerbuild() {
|
||||
--cross-compile-prefix="$FFBUILD_CROSS_PREFIX"
|
||||
linux-x86_64
|
||||
)
|
||||
elif [[ $TARGET == linuxarm64 ]]; then
|
||||
myconf+=(
|
||||
--cross-compile-prefix="$FFBUILD_CROSS_PREFIX"
|
||||
linux-aarch64
|
||||
)
|
||||
else
|
||||
echo "Unknown target"
|
||||
return -1
|
||||
|
@ -5,6 +5,7 @@ LIBX11_COMMIT="3a30ada60c5217ada37b143b541c8e6f6284c7fa"
|
||||
|
||||
ffbuild_enabled() {
|
||||
[[ $TARGET != linux* ]] && return -1
|
||||
[[ $TARGET == linuxarm64 ]] && return -1
|
||||
return 0
|
||||
}
|
||||
|
||||
|
@ -5,6 +5,7 @@ LIBXEXT_COMMIT="47904063048fa6ef6e8e16219ddef4d14d5d9a4b"
|
||||
|
||||
ffbuild_enabled() {
|
||||
[[ $TARGET != linux* ]] && return -1
|
||||
[[ $TARGET == linuxarm64 ]] && return -1
|
||||
return 0
|
||||
}
|
||||
|
||||
|
@ -5,6 +5,7 @@ LIBXFIXES_COMMIT="6fe3bd64dd82f704ed91478acb4c99ab5c00be16"
|
||||
|
||||
ffbuild_enabled() {
|
||||
[[ $TARGET != linux* ]] && return -1
|
||||
[[ $TARGET == linuxarm64 ]] && return -1
|
||||
return 0
|
||||
}
|
||||
|
||||
|
@ -5,6 +5,7 @@ LIBXI_COMMIT="f24d7f43ab4d97203e60677a3d42e11dbc80c8b4"
|
||||
|
||||
ffbuild_enabled() {
|
||||
[[ $TARGET != linux* ]] && return -1
|
||||
[[ $TARGET == linuxarm64 ]] && return -1
|
||||
return 0
|
||||
}
|
||||
|
||||
|
@ -5,6 +5,7 @@ LIBXINERAMA_COMMIT="c5187f076d16601c15c59c5a2f05c0513d9f042b"
|
||||
|
||||
ffbuild_enabled() {
|
||||
[[ $TARGET != linux* ]] && return -1
|
||||
[[ $TARGET == linuxarm64 ]] && return -1
|
||||
return 0
|
||||
}
|
||||
|
||||
|
@ -5,6 +5,7 @@ LIBXRENDER_COMMIT="bce0618839fc33f44edd8b5498b8e33d167806ff"
|
||||
|
||||
ffbuild_enabled() {
|
||||
[[ $TARGET != linux* ]] && return -1
|
||||
[[ $TARGET == linuxarm64 ]] && return -1
|
||||
return 0
|
||||
}
|
||||
|
||||
|
@ -5,6 +5,7 @@ LIBXSCRNSAVER_COMMIT="aa9fd5061d0a8832480ad0c1acc9d2e864e807f4"
|
||||
|
||||
ffbuild_enabled() {
|
||||
[[ $TARGET != linux* ]] && return -1
|
||||
[[ $TARGET == linuxarm64 ]] && return -1
|
||||
return 0
|
||||
}
|
||||
|
||||
|
@ -5,6 +5,7 @@ LIBXXF86VM_COMMIT="7f43cd2a905e7b93b83c9ce81dabb768f6fa2bc7"
|
||||
|
||||
ffbuild_enabled() {
|
||||
[[ $TARGET != linux* ]] && return -1
|
||||
[[ $TARGET == linuxarm64 ]] && return -1
|
||||
return 0
|
||||
}
|
||||
|
||||
|
@ -5,6 +5,7 @@ GLVND_COMMIT="8e5f0f16467cc8ce870789d9a5b6a2c3f58921c9"
|
||||
|
||||
ffbuild_enabled() {
|
||||
[[ $TARGET != linux* ]] && return -1
|
||||
[[ $TARGET == linuxarm64 ]] && return -1
|
||||
return 0
|
||||
}
|
||||
|
||||
|
@ -5,6 +5,7 @@ LIBXCURSOR_COMMIT="27adb16027fa99d83818a0ed9f6623cb03f0c574"
|
||||
|
||||
ffbuild_enabled() {
|
||||
[[ $TARGET != linux* ]] && return -1
|
||||
[[ $TARGET == linuxarm64 ]] && return -1
|
||||
return 0
|
||||
}
|
||||
|
||||
|
@ -5,6 +5,7 @@ LIBXRANDR_COMMIT="55dcda4518eda8ae03ef25ea29d3c994ad71eb0a"
|
||||
|
||||
ffbuild_enabled() {
|
||||
[[ $TARGET != linux* ]] && return -1
|
||||
[[ $TARGET == linuxarm64 ]] && return -1
|
||||
return 0
|
||||
}
|
||||
|
||||
|
@ -5,6 +5,7 @@ LIBXV_COMMIT="03a6f599d060591a9a7cd8558bd2143a1c7c70d7"
|
||||
|
||||
ffbuild_enabled() {
|
||||
[[ $TARGET != linux* ]] && return -1
|
||||
[[ $TARGET == linuxarm64 ]] && return -1
|
||||
[[ $ADDINS_STR == *4.4* ]] && return -1
|
||||
return 0
|
||||
}
|
||||
|
@ -6,6 +6,8 @@ DAVS2_COMMIT="b06d7585620f4e90a6d19a2926bb4e59793b8942"
|
||||
ffbuild_enabled() {
|
||||
[[ $VARIANT == lgpl* ]] && return -1
|
||||
[[ $TARGET == win32 ]] && return -1
|
||||
# davs2 aarch64 support is broken
|
||||
[[ $TARGET == linuxarm64 ]] && return -1
|
||||
return 0
|
||||
}
|
||||
|
||||
|
@ -32,11 +32,16 @@ ffbuild_dockerbuild() {
|
||||
--target=x86-win32-gcc
|
||||
)
|
||||
export CROSS="$FFBUILD_CROSS_PREFIX"
|
||||
elif [[ $TARGET == linux* ]]; then
|
||||
elif [[ $TARGET == linux64 ]]; then
|
||||
myconf+=(
|
||||
--target=x86_64-linux-gcc
|
||||
)
|
||||
export CROSS="$FFBUILD_CROSS_PREFIX"
|
||||
elif [[ $TARGET == linuxarm64 ]]; then
|
||||
myconf+=(
|
||||
--target=arm64-linux-gcc
|
||||
)
|
||||
export CROSS="$FFBUILD_CROSS_PREFIX"
|
||||
else
|
||||
echo "Unknown target"
|
||||
return -1
|
||||
|
@ -4,6 +4,7 @@ MFX_REPO="https://github.com/lu-zero/mfx_dispatch.git"
|
||||
MFX_COMMIT="7e4d221c36c630c1250b23a5dfa15657bc04c10c"
|
||||
|
||||
ffbuild_enabled() {
|
||||
[[ $TARGET == linuxarm64 ]] && return -1
|
||||
return 0
|
||||
}
|
||||
|
||||
|
@ -37,6 +37,11 @@ ffbuild_dockerbuild() {
|
||||
OS=linux
|
||||
ARCH=x86_64
|
||||
)
|
||||
elif [[ $TARGET == linuxarm64 ]]; then
|
||||
myconf+=(
|
||||
OS=linux
|
||||
ARCH=aarch64
|
||||
)
|
||||
else
|
||||
echo "Unknown target"
|
||||
return -1
|
||||
|
@ -25,6 +25,12 @@ ffbuild_dockerbuild() {
|
||||
)
|
||||
fi
|
||||
|
||||
# For some reason, RUSTFLAGS, CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER,
|
||||
# and .cargo/config.toml can't work, so have to put a symbolic link
|
||||
if [[ $TARGET == linuxarm64 ]]; then
|
||||
ln -s /opt/ct-ng/bin/aarch64-ffbuild-linux-gnu-gcc /opt/ct-ng/bin/aarch64-linux-gnu-gcc
|
||||
fi
|
||||
|
||||
cargo cinstall "${myconf[@]}"
|
||||
}
|
||||
|
||||
|
@ -4,6 +4,7 @@ SDL_REPO="https://github.com/libsdl-org/SDL.git"
|
||||
SDL_COMMIT="0a93ac129475ab3ce11af95969f767d60e98233a"
|
||||
|
||||
ffbuild_enabled() {
|
||||
[[ $TARGET == linuxarm64 ]] && return -1
|
||||
return 0
|
||||
}
|
||||
|
||||
|
@ -5,6 +5,7 @@ LIBVA_COMMIT="395e502d162fe04ccec7700bd1a58dca40328605"
|
||||
|
||||
ffbuild_enabled() {
|
||||
[[ $TARGET != linux* ]] && return -1
|
||||
[[ $TARGET == linuxarm64 ]] && return -1
|
||||
return 0
|
||||
}
|
||||
|
||||
|
@ -15,7 +15,12 @@ ffbuild_dockerbuild() {
|
||||
|
||||
mkdir build && cd build
|
||||
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" -DBUILD_SHARED_LIBS=OFF -DUSE_OMP=ON ..
|
||||
local disable_sse2=""
|
||||
if [[ $TARGET == *arm64 ]]; then
|
||||
disable_sse2=-DSSE2_FOUND=FALSE
|
||||
fi
|
||||
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" -DBUILD_SHARED_LIBS=OFF -DUSE_OMP=ON $disable_sse2 ..
|
||||
make -j$(nproc)
|
||||
make install
|
||||
|
||||
|
@ -6,6 +6,8 @@ XAVS2_COMMIT="eae1e8b9d12468059bdd7dee893508e470fa83d8"
|
||||
ffbuild_enabled() {
|
||||
[[ $VARIANT == lgpl* ]] && return -1
|
||||
[[ $TARGET == win32 ]] && return -1
|
||||
# xavs2 aarch64 support is broken
|
||||
[[ $TARGET == linuxarm64 ]] && return -1
|
||||
return 0
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user