Add support for win32 builds

Closes #3
This commit is contained in:
BtbN 2020-09-27 22:10:05 +02:00
parent 0e104d9662
commit 77b3030134
17 changed files with 123 additions and 19 deletions

View file

@ -26,11 +26,16 @@ ffbuild_dockerbuild() {
--prefix="$FFBUILD_PREFIX"
)
if [[ $TARGET == win* ]]; then
if [[ $TARGET == win64 ]]; then
myconf+=(
--cross-compile-prefix="$FFBUILD_CROSS_PREFIX"
mingw64
)
elif [[ $TARGET == win32 ]]; then
myconf+=(
--cross-compile-prefix="$FFBUILD_CROSS_PREFIX"
mingw
)
else
echo "Unknown target"
return -1

View file

@ -24,9 +24,9 @@ ffbuild_dockerbuild() {
--default-library=static
)
if [[ $TARGET == win64 ]]; then
if [[ $TARGET == win* ]]; then
myconf+=(
--cross-file=../package/crossfiles/x86_64-w64-mingw32.meson
--cross-file=/cross.meson
)
else
echo "Unknown target"

View file

@ -26,11 +26,16 @@ ffbuild_dockerbuild() {
--prefix="$FFBUILD_PREFIX"
)
if [[ $TARGET == win* ]]; then
if [[ $TARGET == win64 ]]; then
myconf+=(
--target=x86_64-win64-gcc
)
export CROSS="$FFBUILD_CROSS_PREFIX"
elif [[ $TARGET == win32 ]]; then
myconf+=(
--target=x86-win32-gcc
)
export CROSS="$FFBUILD_CROSS_PREFIX"
else
echo "Unknown target"
return -1

View file

@ -4,6 +4,7 @@ SVTAV1_REPO="https://github.com/OpenVisualCloud/SVT-AV1.git"
SVTAV1_COMMIT="0dc2297715861b78577b3790e361af74b6c4bfef"
ffbuild_enabled() {
[[ $TARGET == win32 ]] && return -1
[[ $VARIANT == *4.3* ]] && return -1
return 0
}

View file

@ -18,24 +18,25 @@ ffbuild_dockerbuild() {
cd x265
git checkout "$X265_COMMIT"
mkdir 8bit 10bit 12bit
if [[ $TARGET != *32 ]]; then
mkdir 8bit 10bit 12bit
cd 12bit
cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DHIGH_BIT_DEPTH=ON -DEXPORT_C_API=OFF -DENABLE_SHARED=OFF -DENABLE_CLI=OFF -DMAIN12=ON ../source || return -1
make -j$(nproc) || return -1
cp libx265.a ../8bit/libx265_main12.a
cd ../10bit
cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DHIGH_BIT_DEPTH=ON -DEXPORT_C_API=OFF -DENABLE_SHARED=OFF -DENABLE_CLI=OFF ../source || return -1
make -j$(nproc) || return -1
cp libx265.a ../8bit/libx265_main10.a
cd 12bit
cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DHIGH_BIT_DEPTH=ON -DEXPORT_C_API=OFF -DENABLE_SHARED=OFF -DENABLE_CLI=OFF -DMAIN12=ON ../source
make -j$(nproc)
cp libx265.a ../8bit/libx265_main12.a
cd ../8bit
cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" -DEXTRA_LIB="x265_main10.a;x265_main12.a" -DEXTRA_LINK_FLAGS=-L. -DLINKED_10BIT=ON -DLINKED_12BIT=ON -DENABLE_SHARED=OFF -DENABLE_CLI=OFF ../source || return -1
make -j$(nproc) || return -1
mv libx265.a libx265_main.a
cd ../10bit
cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DHIGH_BIT_DEPTH=ON -DEXPORT_C_API=OFF -DENABLE_SHARED=OFF -DENABLE_CLI=OFF ../source
make -j$(nproc)
cp libx265.a ../8bit/libx265_main10.a
${FFBUILD_CROSS_PREFIX}ar -M <<EOF
cd ../8bit
cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" -DEXTRA_LIB="x265_main10.a;x265_main12.a" -DEXTRA_LINK_FLAGS=-L. -DLINKED_10BIT=ON -DLINKED_12BIT=ON -DENABLE_SHARED=OFF -DENABLE_CLI=OFF ../source
make -j$(nproc)
mv libx265.a libx265_main.a
${FFBUILD_CROSS_PREFIX}ar -M <<EOF
CREATE libx265.a
ADDLIB libx265_main.a
ADDLIB libx265_main10.a
@ -43,6 +44,12 @@ ADDLIB libx265_main12.a
SAVE
END
EOF
else
mkdir 8bit
cd 8bit
cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" -DENABLE_SHARED=OFF -DENABLE_CLI=OFF ../source
make -j$(nproc)
fi
make install || return -1