mirror of
https://github.com/BtbN/FFmpeg-Builds.git
synced 2025-06-12 21:37:38 +02:00
Add initial support for winarm64
This commit is contained in:
@ -9,11 +9,13 @@ ffbuild_enabled() {
|
||||
}
|
||||
|
||||
ffbuild_dockerlayer() {
|
||||
[[ $TARGET == winarm* ]] && return 0
|
||||
to_df "COPY --from=${SELFLAYER} /opt/mingw/. /"
|
||||
to_df "COPY --from=${SELFLAYER} /opt/mingw/. /opt/mingw"
|
||||
}
|
||||
|
||||
ffbuild_dockerfinal() {
|
||||
[[ $TARGET == winarm* ]] && return 0
|
||||
to_df "COPY --from=${PREVLAYER} /opt/mingw/. /"
|
||||
}
|
||||
|
||||
@ -22,6 +24,8 @@ ffbuild_dockerdl() {
|
||||
}
|
||||
|
||||
ffbuild_dockerbuild() {
|
||||
[[ $TARGET == winarm* ]] && return 0
|
||||
|
||||
cd mingw-w64-headers
|
||||
|
||||
unset CFLAGS
|
||||
@ -29,10 +33,12 @@ ffbuild_dockerbuild() {
|
||||
unset LDFLAGS
|
||||
unset PKG_CONFIG_LIBDIR
|
||||
|
||||
GCC_SYSROOT="$(${FFBUILD_CROSS_PREFIX}gcc -print-sysroot)"
|
||||
if [[ -z "$COMPILER_SYSROOT" ]]; then
|
||||
COMPILER_SYSROOT="$(${CC} -print-sysroot)/usr"
|
||||
fi
|
||||
|
||||
local myconf=(
|
||||
--prefix="$GCC_SYSROOT/usr/$FFBUILD_TOOLCHAIN"
|
||||
--prefix="$COMPILER_SYSROOT"
|
||||
--host="$FFBUILD_TOOLCHAIN"
|
||||
--with-default-win32-winnt="0x601"
|
||||
--with-default-msvcrt=ucrt
|
||||
@ -46,7 +52,7 @@ ffbuild_dockerbuild() {
|
||||
cd ../mingw-w64-libraries/winpthreads
|
||||
|
||||
local myconf=(
|
||||
--prefix="$GCC_SYSROOT/usr/$FFBUILD_TOOLCHAIN"
|
||||
--prefix="$COMPILER_SYSROOT"
|
||||
--host="$FFBUILD_TOOLCHAIN"
|
||||
--with-pic
|
||||
--disable-shared
|
||||
|
@ -13,14 +13,6 @@ ffbuild_dockerbuild() {
|
||||
--static
|
||||
)
|
||||
|
||||
if [[ $TARGET == win* || $TARGET == linux* ]]; then
|
||||
export CC="${FFBUILD_CROSS_PREFIX}gcc"
|
||||
export AR="${FFBUILD_CROSS_PREFIX}ar"
|
||||
else
|
||||
echo "Unknown target"
|
||||
return -1
|
||||
fi
|
||||
|
||||
./configure "${myconf[@]}"
|
||||
make -j$(nproc)
|
||||
make install
|
||||
|
@ -38,6 +38,8 @@ ffbuild_dockerbuild() {
|
||||
return -1
|
||||
fi
|
||||
|
||||
sed -i 's/windows.h/process.h/' configure.ac
|
||||
|
||||
./bootstrap.sh "${myconf[@]}"
|
||||
make -j$(nproc)
|
||||
make install
|
||||
|
@ -1,8 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
SCRIPT_REPO="https://github.com/openssl/openssl.git"
|
||||
SCRIPT_COMMIT="openssl-3.0.13"
|
||||
SCRIPT_TAGFILTER="openssl-3.0.*"
|
||||
SCRIPT_COMMIT="openssl-3.2.1"
|
||||
SCRIPT_TAGFILTER="openssl-3.2.*"
|
||||
|
||||
ffbuild_enabled() {
|
||||
return 0
|
||||
@ -40,6 +40,27 @@ ffbuild_dockerbuild() {
|
||||
--cross-compile-prefix="$FFBUILD_CROSS_PREFIX"
|
||||
mingw
|
||||
)
|
||||
elif [[ $TARGET == winarm64 ]]; then
|
||||
myconf+=(
|
||||
--cross-compile-prefix="$FFBUILD_CROSS_PREFIX"
|
||||
mingwarm64
|
||||
)
|
||||
|
||||
cat <<EOF >Configurations/50-win-arm-mingw.conf
|
||||
my %targets = (
|
||||
"mingwarm64" => {
|
||||
inherit_from => [ "mingw-common" ],
|
||||
cflags => "",
|
||||
sys_id => "MINGWARM64",
|
||||
bn_ops => add("SIXTY_FOUR_BIT"),
|
||||
asm_arch => 'aarch64',
|
||||
uplink_arch => 'armv8',
|
||||
perlasm_scheme => "win64",
|
||||
shared_rcflag => "",
|
||||
multilib => "-arm64",
|
||||
},
|
||||
);
|
||||
EOF
|
||||
elif [[ $TARGET == linux64 ]]; then
|
||||
myconf+=(
|
||||
--cross-compile-prefix="$FFBUILD_CROSS_PREFIX"
|
||||
@ -64,9 +85,6 @@ ffbuild_dockerbuild() {
|
||||
export AR="${AR/${FFBUILD_CROSS_PREFIX}/}"
|
||||
export RANLIB="${RANLIB/${FFBUILD_CROSS_PREFIX}/}"
|
||||
|
||||
# Actually allow Configure to disable apps
|
||||
sed -i '/^my @disablables =/ s/$/"apps",/' Configure
|
||||
|
||||
./Configure "${myconf[@]}"
|
||||
|
||||
sed -i -e "/^CFLAGS=/s|=.*|=${CFLAGS}|" -e "/^LDFLAGS=/s|=[[:space:]]*$|=${LDFLAGS}|" Makefile
|
||||
|
@ -29,6 +29,8 @@ ffbuild_dockerbuild() {
|
||||
./autogen.sh "${myconf[@]}"
|
||||
make -j$(nproc)
|
||||
make install
|
||||
|
||||
echo "Libs.private: -lpthread" >> "$FFBUILD_PREFIX"/lib/pkgconfig/harfbuzz.pc
|
||||
}
|
||||
|
||||
ffbuild_configure() {
|
||||
|
@ -33,7 +33,7 @@ ffbuild_dockerbuild() {
|
||||
return -1
|
||||
fi
|
||||
|
||||
meson "${myconf[@]}" ../libvmaf
|
||||
meson "${myconf[@]}" ../libvmaf || cat meson-logs/meson-log.txt
|
||||
ninja -j"$(nproc)"
|
||||
ninja install
|
||||
|
||||
|
@ -4,6 +4,7 @@ SCRIPT_REPO="https://aomedia.googlesource.com/aom"
|
||||
SCRIPT_COMMIT="158761dfb40e77f3a54c3b14a596112837baa24b"
|
||||
|
||||
ffbuild_enabled() {
|
||||
[[ $TARGET == winarm64 ]] && return -1
|
||||
return 0
|
||||
}
|
||||
|
||||
|
@ -7,7 +7,7 @@ ffbuild_enabled() {
|
||||
[[ $VARIANT == lgpl* ]] && return -1
|
||||
[[ $TARGET == win32 ]] && return -1
|
||||
# davs2 aarch64 support is broken
|
||||
[[ $TARGET == linuxarm64 ]] && return -1
|
||||
[[ $TARGET == *arm64 ]] && return -1
|
||||
return 0
|
||||
}
|
||||
|
||||
|
@ -9,6 +9,7 @@ SCRIPT_COMMIT2="18c24977c67a94d1969993444cf06ff91b0068a7"
|
||||
SCRIPT_BRANCH2="sdk/11.1"
|
||||
|
||||
ffbuild_enabled() {
|
||||
[[ $TARGET == winarm64 ]] && return -1
|
||||
return 0
|
||||
}
|
||||
|
||||
|
@ -31,6 +31,7 @@ ffbuild_dockerbuild() {
|
||||
make install
|
||||
|
||||
echo "Cflags.private: -DKVZ_STATIC_LIB" >> "$FFBUILD_PREFIX"/lib/pkgconfig/kvazaar.pc
|
||||
echo "Libs.private: -lpthread" >> "$FFBUILD_PREFIX"/lib/pkgconfig/kvazaar.pc
|
||||
}
|
||||
|
||||
ffbuild_configure() {
|
||||
|
@ -22,7 +22,7 @@ ffbuild_dockerbuild() {
|
||||
if [[ $TARGET == linux* ]]; then
|
||||
# our glibc is too old(<2.25), and their detection fails for some reason
|
||||
export CXXFLAGS="$CXXFLAGS -DVQSORT_GETRANDOM=0 -DVQSORT_SECURE_SEED=0"
|
||||
elif [[ $TARGET == win* ]]; then
|
||||
elif [[ $TARGET == win32 || $TARGET == win64 ]]; then
|
||||
# Fix AVX2 related crash due to unaligned stack memory
|
||||
export CXXFLAGS="$CXXFLAGS -Wa,-muse-unaligned-vector-move"
|
||||
export CFLAGS="$CFLAGS -Wa,-muse-unaligned-vector-move"
|
||||
|
@ -15,18 +15,16 @@ ffbuild_dockerdl() {
|
||||
ffbuild_dockerbuild() {
|
||||
local myconf=(
|
||||
--prefix="$FFBUILD_PREFIX"
|
||||
--host="$FFBUILD_TOOLCHAIN"
|
||||
--disable-shared
|
||||
--enable-static
|
||||
--disable-extra-programs
|
||||
)
|
||||
|
||||
if [[ $TARGET == win* || $TARGET == linux* ]]; then
|
||||
if [[ $TARGET == winarm* ]]; then
|
||||
myconf+=(
|
||||
--host="$FFBUILD_TOOLCHAIN"
|
||||
--disable-rtcd
|
||||
)
|
||||
else
|
||||
echo "Unknown target"
|
||||
return -1
|
||||
fi
|
||||
|
||||
./configure "${myconf[@]}"
|
||||
|
@ -11,9 +11,8 @@ ffbuild_dockerbuild() {
|
||||
mkdir build && cd build
|
||||
|
||||
cmake -GNinja -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DWITH_EXAMPLES=OFF -DWITH_SERVER=OFF \
|
||||
-DWITH_SFTP=ON -DWITH_ZLIB=ON ..
|
||||
-DBUILD_SHARED_LIBS=OFF -DWITH_EXAMPLES=OFF -DWITH_SERVER=OFF -DWITH_SFTP=ON -DWITH_ZLIB=ON \
|
||||
..
|
||||
|
||||
ninja -j$(nproc)
|
||||
ninja install
|
||||
@ -24,6 +23,7 @@ ffbuild_dockerbuild() {
|
||||
if [[ $TARGET == win* ]]; then
|
||||
echo "Libs.private: -liphlpapi -lws2_32"
|
||||
fi
|
||||
echo "Libs.private: -lpthread"
|
||||
} >> "$FFBUILD_PREFIX"/lib/pkgconfig/libssh.pc
|
||||
}
|
||||
|
||||
|
@ -4,6 +4,7 @@ SCRIPT_REPO="https://chromium.googlesource.com/webm/libvpx"
|
||||
SCRIPT_COMMIT="c29e63728316486082dd6083c2062434b441b77d"
|
||||
|
||||
ffbuild_enabled() {
|
||||
[[ $TARGET == winarm64 ]] && return -1
|
||||
return 0
|
||||
}
|
||||
|
||||
@ -30,6 +31,11 @@ ffbuild_dockerbuild() {
|
||||
--target=x86-win32-gcc
|
||||
)
|
||||
export CROSS="$FFBUILD_CROSS_PREFIX"
|
||||
elif [[ $TARGET == winarm64 ]]; then
|
||||
myconf+=(
|
||||
--target=arm64-win64-gcc
|
||||
)
|
||||
export CROSS="$FFBUILD_CROSS_PREFIX"
|
||||
elif [[ $TARGET == linux64 ]]; then
|
||||
myconf+=(
|
||||
--target=x86_64-linux-gcc
|
||||
|
@ -14,9 +14,9 @@ ffbuild_dockerbuild() {
|
||||
BUILDTYPE=Release
|
||||
DEBUGSYMBOLS=False
|
||||
LIBDIR_NAME=lib
|
||||
CC="$FFBUILD_CROSS_PREFIX"gcc
|
||||
CXX="$FFBUILD_CROSS_PREFIX"g++
|
||||
AR="$FFBUILD_CROSS_PREFIX"ar
|
||||
CC="$CC"
|
||||
CXX="$CXX"
|
||||
AR="$AR"
|
||||
)
|
||||
|
||||
if [[ $TARGET == win32 ]]; then
|
||||
@ -29,6 +29,11 @@ ffbuild_dockerbuild() {
|
||||
OS=mingw_nt
|
||||
ARCH=x86_64
|
||||
)
|
||||
elif [[ $TARGET == winarm64 ]]; then
|
||||
myconf+=(
|
||||
OS=mingw_nt
|
||||
ARCH=aarch64
|
||||
)
|
||||
elif [[ $TARGET == linux64 ]]; then
|
||||
myconf+=(
|
||||
OS=linux
|
||||
|
@ -4,6 +4,7 @@ SCRIPT_REPO="https://source.openmpt.org/svn/openmpt/trunk/OpenMPT"
|
||||
SCRIPT_REV="20417"
|
||||
|
||||
ffbuild_enabled() {
|
||||
[[ $TARGET == winarm64 ]] && return -1
|
||||
return 0
|
||||
}
|
||||
|
||||
@ -42,7 +43,13 @@ ffbuild_dockerbuild() {
|
||||
NO_FLAC=1
|
||||
)
|
||||
|
||||
if [[ $TARGET == win* ]]; then
|
||||
if [[ $TARGET == winarm64 ]]; then
|
||||
myconf+=(
|
||||
CONFIG=mingw64-win64
|
||||
WINDOWS_ARCH=arm64
|
||||
)
|
||||
export CPPFLAGS="$CPPFLAGS -DMPT_WITH_MINGWSTDTHREADS"
|
||||
elif [[ $TARGET == win* ]]; then
|
||||
myconf+=(
|
||||
CONFIG=mingw64-"$TARGET"
|
||||
)
|
||||
|
@ -10,11 +10,16 @@ ffbuild_enabled() {
|
||||
ffbuild_dockerbuild() {
|
||||
mkdir build && cd build
|
||||
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" -DWITH_OPENMP=ON -DBUILD_TESTS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_SHARED_LIBS=OFF ..
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" \
|
||||
-DWITH_OPENMP="$([[ $TARGET == winarm64 ]] && echo OFF || echo ON)" \
|
||||
-DBUILD_TESTS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_SHARED_LIBS=OFF \
|
||||
..
|
||||
make -j$(nproc)
|
||||
make install
|
||||
|
||||
echo "Libs.private: -lgomp" >> "$FFBUILD_PREFIX"/lib/pkgconfig/soxr.pc
|
||||
if [[ $TARGET != winarm64 ]]; then
|
||||
echo "Libs.private: -lgomp" >> "$FFBUILD_PREFIX"/lib/pkgconfig/soxr.pc
|
||||
fi
|
||||
}
|
||||
|
||||
ffbuild_configure() {
|
||||
@ -30,5 +35,5 @@ ffbuild_ldflags() {
|
||||
}
|
||||
|
||||
ffbuild_libs() {
|
||||
echo -lgomp
|
||||
[[ $TARGET != winarm64 ]] && echo -lgomp
|
||||
}
|
||||
|
@ -5,6 +5,7 @@ SCRIPT_COMMIT="1fd04917cff50fac72ae23e45f82ca6fd9130bd8"
|
||||
|
||||
ffbuild_enabled() {
|
||||
[[ $TARGET == win32 ]] && return -1
|
||||
[[ $TARGET == winarm64 ]] && return -1
|
||||
return 0
|
||||
}
|
||||
|
||||
|
@ -7,7 +7,7 @@ ffbuild_enabled() {
|
||||
[[ $VARIANT == lgpl* ]] && return -1
|
||||
[[ $TARGET == win32 ]] && return -1
|
||||
# xavs2 aarch64 support is broken
|
||||
[[ $TARGET == linuxarm64 ]] && return -1
|
||||
[[ $TARGET == *arm64 ]] && return -1
|
||||
return 0
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user