1
0
mirror of https://github.com/qTox/qTox.git synced 2024-03-22 14:00:36 +08:00

chore(CI): Add support for building VPX for macOS

Manually set library id name because it defaults to "libvpx.7.dylib",
for some reason, which is not found by qTox or tests.
This commit is contained in:
Anthony Bilinski 2022-03-03 02:12:40 -08:00
parent b067aae207
commit 35d35a33f2
No known key found for this signature in database
GPG Key ID: 2AA8E0DA1B31FB3C

View File

@ -10,27 +10,41 @@ readonly SCRIPT_DIR="$(dirname "$(realpath "$0")")"
source "${SCRIPT_DIR}/build_utils.sh"
parse_arch --dep "vpx" --supported "win32 win64" "$@"
parse_arch --dep "vpx" --supported "win32 win64 macos" "$@"
if [[ "$SCRIPT_ARCH" == "win64" ]]; then
# There is a bug in gcc that breaks avx512 on 64-bit Windows https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54412
# VPX fails to build due to it.
# This is a workaround as suggested in https://stackoverflow.com/questions/43152633
ARCH_FLAGS="-fno-asynchronous-unwind-tables"
VPX_ARCH="x86_64-win64-gcc"
CROSS_ARG="${MINGW_ARCH}-w64-mingw32-"
TARGET_ARG="--target=x86_64-win64-gcc"
elif [[ "$SCRIPT_ARCH" == "win32" ]]; then
ARCH_FLAGS=""
VPX_ARCH="x86-win32-gcc"
CROSS_ARG="${MINGW_ARCH}-w64-mingw32-"
TARGET_ARG="--target=x86-win32-gcc"
elif [ "${SCRIPT_ARCH}" == "macos" ]; then \
ARCH_FLAGS=""
CROSS_ARG=""
TARGET_ARG=""
else
exit 1
fi
"${SCRIPT_DIR}/download/download_vpx.sh"
patch -Np1 < "${SCRIPT_DIR}/patches/vpx-windows.patch"
if [ "${SCRIPT_ARCH}" == "macos" ]; then
patch -Np1 < "${SCRIPT_DIR}/patches/vpx-macos.patch"
else
patch -Np1 < "${SCRIPT_DIR}/patches/vpx-windows.patch"
fi
CFLAGS=${ARCH_FLAGS} CROSS="${MINGW_ARCH}-w64-mingw32-" \
./configure --target="${VPX_ARCH}" \
CFLAGS="${ARCH_FLAGS} ${CROSS_CFLAG}" \
CPPFLAGS="${CROSS_CPPFLAG}" \
LDFLAGS="${CROSS_LDFLAG}" \
CROSS="${CROSS_ARG}" \
./configure \
${TARGET_ARG} \
"--prefix=${DEP_PREFIX}" \
--enable-shared \
--disable-static \
@ -42,3 +56,7 @@ CFLAGS=${ARCH_FLAGS} CROSS="${MINGW_ARCH}-w64-mingw32-" \
make -j "${MAKE_JOBS}"
make install
if [ "${SCRIPT_ARCH}" == "macos" ]; then
install_name_tool -id '@rpath/libvpx.dylib' ${DEP_PREFIX}/lib/libvpx.dylib
fi