forked from Green-Sky/tomato
Green Sky
8eb4892b49
6d634674a9 cleanup: Remove old type-ordered event getters. d1d48d1dfc feat: add ngc events 994ffecc6b refactor: Make event dispatch ordered by receive time. 812f931d5f fix: Make sure there's enough space for CONSUME1 in fuzzers. 50f1b30fa9 test: Add fuzz tests to the coverage run. df76f5cf47 chore: Move from gcov to llvm source-based coverage. 072e3beb3f fix: issues with packet broadcast error reporting 6b6718e4d2 cleanup: Make group packet entry creation less error-prone 5b9c420ce1 refactor: packet broadcast functions now return errors af4cb31028 refactor: Use `operator==` for equality tests of `Node_format`. 9592d590cf refactor(test): Slightly nicer C++ interface to tox Random. c66e10fb7a refactor: Minor refactoring of get_close_nodes functions. ebc9643862 fix: don't pass garbage data buffer to packet send functions 32b68cffca cleanup: Some more test cleanups, removing overly smart code. 0426624dcb refactor: Assign malloc return to a local variable first. afc38f2458 test: Add more unit tests for `add_to_list`. 05ce5c1ab9 test: Add "infer" CI check to github, remove from circle. REVERT: 8f0d505f9a feat: add ngc events REVERT: 9b8216e70c refactor: Make event dispatch ordered by receive time. git-subtree-dir: external/toxcore/c-toxcore git-subtree-split: 6d634674a929edb0ab70689dcbcb195b3547be13
98 lines
2.7 KiB
Bash
Executable File
98 lines
2.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# disable on Cygwin otherwise some builds fail
|
|
if [ "$CROSS_COMPILE" = "true" ]; then
|
|
set -e -x
|
|
fi
|
|
|
|
#=== Cross-Compile Dependencies ===
|
|
|
|
build() {
|
|
ARCH=${1}
|
|
|
|
echo "Building for $ARCH architecture"
|
|
|
|
# set some things
|
|
WINDOWS_TOOLCHAIN=$ARCH-w64-mingw32
|
|
|
|
# prefix that we will copy to the user
|
|
PREFIX_DIR="/root/prefix/$ARCH"
|
|
rm -rf "$PREFIX_DIR"
|
|
mkdir -p "$PREFIX_DIR"
|
|
|
|
export MAKEFLAGS=j"$(nproc)"
|
|
export CFLAGS=-O3
|
|
|
|
CURL_OPTIONS=(-L --connect-timeout 10)
|
|
|
|
cd /tmp
|
|
rm -rf /tmp/*
|
|
|
|
echo "
|
|
SET(CMAKE_SYSTEM_NAME Windows)
|
|
|
|
SET(CMAKE_C_COMPILER $WINDOWS_TOOLCHAIN-gcc)
|
|
SET(CMAKE_CXX_COMPILER $WINDOWS_TOOLCHAIN-g++)
|
|
SET(CMAKE_RC_COMPILER $WINDOWS_TOOLCHAIN-windres)
|
|
|
|
SET(CMAKE_FIND_ROOT_PATH /usr/$WINDOWS_TOOLCHAIN $DEP_PREFIX_DIR)
|
|
" >windows_toolchain.cmake
|
|
|
|
echo
|
|
echo "=== Building Sodium $VERSION_SODIUM $ARCH ==="
|
|
curl "${CURL_OPTIONS[@]}" -O "https://github.com/jedisct1/libsodium/releases/download/$VERSION_SODIUM-RELEASE/libsodium-$VERSION_SODIUM.tar.gz"
|
|
tar -xf "libsodium-$VERSION_SODIUM.tar.gz"
|
|
cd "libsodium-stable"
|
|
./configure --host="$WINDOWS_TOOLCHAIN" --prefix="$PREFIX_DIR" --disable-shared --enable-static
|
|
make
|
|
make install
|
|
cd ..
|
|
|
|
echo
|
|
echo "=== Building Opus $VERSION_OPUS $ARCH ==="
|
|
curl "${CURL_OPTIONS[@]}" -O "https://archive.mozilla.org/pub/opus/opus-$VERSION_OPUS.tar.gz"
|
|
tar -xf "opus-$VERSION_OPUS.tar.gz"
|
|
cd "opus-$VERSION_OPUS"
|
|
./configure --host="$WINDOWS_TOOLCHAIN" --prefix="$PREFIX_DIR" --disable-extra-programs --disable-doc --disable-shared --enable-static
|
|
make
|
|
make install
|
|
cd ..
|
|
|
|
echo
|
|
echo "=== Building VPX $VERSION_VPX $ARCH ==="
|
|
LIB_VPX_TARGET=""
|
|
if [ "$ARCH" = "i686" ]; then
|
|
LIB_VPX_TARGET=x86-win32-gcc
|
|
LIB_VPX_CFLAGS=""
|
|
else
|
|
LIB_VPX_TARGET=x86_64-win64-gcc
|
|
# 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
|
|
LIB_VPX_CFLAGS="-fno-asynchronous-unwind-tables"
|
|
fi
|
|
curl "${CURL_OPTIONS[@]}" "https://github.com/webmproject/libvpx/archive/v$VERSION_VPX.tar.gz" -o "libvpx-$VERSION_VPX.tar.gz"
|
|
tar -xf "libvpx-$VERSION_VPX.tar.gz"
|
|
cd "libvpx-$VERSION_VPX"
|
|
CFLAGS="$LIB_VPX_CFLAGS" CROSS="$WINDOWS_TOOLCHAIN"- ./configure --target="$LIB_VPX_TARGET" --prefix="$PREFIX_DIR" --disable-examples --disable-unit-tests --disable-shared --enable-static
|
|
make
|
|
make install
|
|
cd ..
|
|
|
|
rm -rf /tmp/*
|
|
}
|
|
|
|
if [ "$SUPPORT_ARCH_i686" = "true" ]; then
|
|
build i686
|
|
fi
|
|
|
|
if [ "$SUPPORT_ARCH_x86_64" = "true" ]; then
|
|
build x86_64
|
|
fi
|
|
|
|
tree /root
|
|
|
|
echo
|
|
echo "Built dependencies successfully!"
|
|
echo
|