mirror of
https://github.com/qTox/qTox.git
synced 2024-03-22 14:00:36 +08:00
feat(travis): Windows cross-compilation
This commit is contained in:
parent
92def839d0
commit
9358297af8
89
.travis.yml
89
.travis.yml
|
@ -12,20 +12,99 @@ branches:
|
||||||
matrix:
|
matrix:
|
||||||
fast_finish: true
|
fast_finish: true
|
||||||
include:
|
include:
|
||||||
- os: linux
|
- stage: Linux
|
||||||
|
os: linux
|
||||||
env: JOB=verify-commit-format
|
env: JOB=verify-commit-format
|
||||||
- os: linux
|
- stage: Linux
|
||||||
|
os: linux
|
||||||
env: JOB=build-docs DOXYGEN_CONFIG_FILE=doxygen.conf
|
env: JOB=build-docs DOXYGEN_CONFIG_FILE=doxygen.conf
|
||||||
- os: linux
|
- stage: Linux
|
||||||
|
os: linux
|
||||||
env: JOB=build-gitstats GITSTATS_DIR=gitstats
|
env: JOB=build-gitstats GITSTATS_DIR=gitstats
|
||||||
addons:
|
addons:
|
||||||
apt:
|
apt:
|
||||||
packages:
|
packages:
|
||||||
- gitstats
|
- gitstats
|
||||||
# the actual compilin'
|
# the actual compilin'
|
||||||
- os: linux
|
- stage: Linux
|
||||||
|
os: linux
|
||||||
env: JOB=build-ubuntu-14-04
|
env: JOB=build-ubuntu-14-04
|
||||||
- os: osx
|
- stage: "Windows Stage 1: Dependencies (OpenSSL, Qt)"
|
||||||
|
os: linux
|
||||||
|
# Makes the cache this job creates avaiable only to jobs with WINDOWS_BUILD_ARCH_CACHE_TRICK_VARIABLE=i686,
|
||||||
|
# making sure that i686 and x86_64 caches don't overwrite each other
|
||||||
|
env: WINDOWS_BUILD_ARCH_CACHE_TRICK_VARIABLE=i686
|
||||||
|
script: ./.travis/build-windows.sh i686 release /opt/build-windows/i686 stage1
|
||||||
|
services:
|
||||||
|
- docker
|
||||||
|
cache:
|
||||||
|
directories:
|
||||||
|
- /opt/build-windows/i686
|
||||||
|
- stage: "Windows Stage 1: Dependencies (OpenSSL, Qt)"
|
||||||
|
os: linux
|
||||||
|
env: WINDOWS_BUILD_ARCH_CACHE_TRICK_VARIABLE=x86_64
|
||||||
|
script: ./.travis/build-windows.sh x86_64 release /opt/build-windows/x86_64 stage1
|
||||||
|
services:
|
||||||
|
- docker
|
||||||
|
cache:
|
||||||
|
directories:
|
||||||
|
- /opt/build-windows/x86_64
|
||||||
|
- stage: "Windows Stage 2: Dependencies (other)"
|
||||||
|
os: linux
|
||||||
|
env: WINDOWS_BUILD_ARCH_CACHE_TRICK_VARIABLE=i686
|
||||||
|
script: ./.travis/build-windows.sh i686 release /opt/build-windows/i686 stage2
|
||||||
|
services:
|
||||||
|
- docker
|
||||||
|
cache:
|
||||||
|
directories:
|
||||||
|
- /opt/build-windows/i686
|
||||||
|
- stage: "Windows Stage 2: Dependencies (other)"
|
||||||
|
os: linux
|
||||||
|
env: WINDOWS_BUILD_ARCH_CACHE_TRICK_VARIABLE=x86_64
|
||||||
|
script: ./.travis/build-windows.sh x86_64 release /opt/build-windows/x86_64 stage2
|
||||||
|
services:
|
||||||
|
- docker
|
||||||
|
cache:
|
||||||
|
directories:
|
||||||
|
- /opt/build-windows/x86_64
|
||||||
|
- stage: "Windows Stage 3: qTox"
|
||||||
|
os: linux
|
||||||
|
env: WINDOWS_BUILD_ARCH_CACHE_TRICK_VARIABLE=i686
|
||||||
|
script: ./.travis/build-windows.sh i686 release /opt/build-windows/i686 stage3
|
||||||
|
services:
|
||||||
|
- docker
|
||||||
|
cache:
|
||||||
|
directories:
|
||||||
|
- /opt/build-windows/i686
|
||||||
|
- stage: "Windows Stage 3: qTox"
|
||||||
|
os: linux
|
||||||
|
env: WINDOWS_BUILD_ARCH_CACHE_TRICK_VARIABLE=x86_64
|
||||||
|
script: ./.travis/build-windows.sh x86_64 release /opt/build-windows/x86_64 stage3
|
||||||
|
services:
|
||||||
|
- docker
|
||||||
|
cache:
|
||||||
|
directories:
|
||||||
|
- /opt/build-windows/x86_64
|
||||||
|
- stage: "Windows Stage 3: qTox"
|
||||||
|
os: linux
|
||||||
|
env: WINDOWS_BUILD_ARCH_CACHE_TRICK_VARIABLE=i686
|
||||||
|
script: ./.travis/build-windows.sh i686 debug /opt/build-windows/i686 stage3
|
||||||
|
services:
|
||||||
|
- docker
|
||||||
|
cache:
|
||||||
|
directories:
|
||||||
|
- /opt/build-windows/i686
|
||||||
|
- stage: "Windows Stage 3: qTox"
|
||||||
|
os: linux
|
||||||
|
env: WINDOWS_BUILD_ARCH_CACHE_TRICK_VARIABLE=x86_64
|
||||||
|
script: ./.travis/build-windows.sh x86_64 debug /opt/build-windows/x86_64 stage3
|
||||||
|
services:
|
||||||
|
- docker
|
||||||
|
cache:
|
||||||
|
directories:
|
||||||
|
- /opt/build-windows/x86_64
|
||||||
|
- stage: macOS
|
||||||
|
os: osx
|
||||||
osx_image: xcode7.3
|
osx_image: xcode7.3
|
||||||
env: JOB=build-osx
|
env: JOB=build-osx
|
||||||
|
|
||||||
|
|
122
.travis/build-windows.sh
Executable file
122
.travis/build-windows.sh
Executable file
|
@ -0,0 +1,122 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# MIT License
|
||||||
|
#
|
||||||
|
# Copyright (c) 2017 Maxim Biro <nurupo.contributions@gmail.com>
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in
|
||||||
|
# all copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
# THE SOFTWARE.
|
||||||
|
|
||||||
|
# Fail out on error
|
||||||
|
set -exuo pipefail
|
||||||
|
|
||||||
|
readonly ARCH="$1"
|
||||||
|
readonly BUILD_TYPE="$2"
|
||||||
|
readonly CACHE_DIR="$3"
|
||||||
|
readonly STAGE="$4"
|
||||||
|
|
||||||
|
if [ -z "$ARCH" ]
|
||||||
|
then
|
||||||
|
echo "Error: No architecture was specified. Please specify either 'i686' or 'x86_64', case sensitive, as the first argument to the script."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$ARCH" != "i686" ]] && [[ "$ARCH" != "x86_64" ]]
|
||||||
|
then
|
||||||
|
echo "Error: Incorrect architecture was specified. Please specify either 'i686' or 'x86_64', case sensitive, as the first argument to the script."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$BUILD_TYPE" ]
|
||||||
|
then
|
||||||
|
echo "Error: No build type was specified. Please specify either 'release' or 'debug', case sensitive, as the second argument to the script."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$BUILD_TYPE" != "release" ]] && [[ "$BUILD_TYPE" != "debug" ]]
|
||||||
|
then
|
||||||
|
echo "Error: Incorrect build type was specified. Please specify either 'release' or 'debug', case sensitive, as the second argument to the script."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$CACHE_DIR" ]
|
||||||
|
then
|
||||||
|
echo "Error: No cache directory path was specified. Please specify absolute path to the cache directory as the third argument to the script."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$STAGE" ]
|
||||||
|
then
|
||||||
|
echo "Error: No stage was specified. Please specify either 'stage1', 'stage2' or 'stage3' as the fourth argument to the script."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$STAGE" != "stage1" ]] && [[ "$STAGE" != "stage2" ]] && [[ "$STAGE" != "stage3" ]]
|
||||||
|
then
|
||||||
|
echo "Error: Incorrect stage was specified. Please specify either 'stage1', 'stage2' or 'stage3', case sensitive, as the fourth argument to the script."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Just make sure those exist, makes logic easier
|
||||||
|
mkdir -p "$CACHE_DIR"
|
||||||
|
touch "$CACHE_DIR"/hash
|
||||||
|
mkdir -p workspace/"$ARCH"/dep-cache
|
||||||
|
|
||||||
|
# If build.sh has changed, i.e. its hash doesn't match the previously stored one, and it's Stage 1
|
||||||
|
# Then we want to rebuild everything from scratch
|
||||||
|
if [ "`cat '$CACHE_DIR'/hash`" != "`sha256sum windows/cross-compile/build.sh`" ] && [ "$STAGE" == "stage1" ]
|
||||||
|
then
|
||||||
|
# Clear the cache, removing all the pre-built dependencies
|
||||||
|
rm -rf "$CACHE_DIR"/*
|
||||||
|
touch "$CACHE_DIR"/hash
|
||||||
|
else
|
||||||
|
# Copy over all pre-built dependencies
|
||||||
|
cp -a "$CACHE_DIR"/* workspace/"$ARCH"/dep-cache
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Purely for debugging
|
||||||
|
ls -lbh "$CACHE_DIR"
|
||||||
|
|
||||||
|
# Build
|
||||||
|
sudo docker run --rm \
|
||||||
|
-v "$PWD/workspace":/workspace \
|
||||||
|
-v "$PWD/windows/cross-compile":/script \
|
||||||
|
-v "$PWD":/qtox \
|
||||||
|
-e TRAVIS_CI_STAGE="$STAGE" \
|
||||||
|
debian:stretch-slim \
|
||||||
|
/bin/bash /script/build.sh "$ARCH" "$BUILD_TYPE"
|
||||||
|
|
||||||
|
# If we were building deps and it's any of the dependency building stages (Stage 1 or 2), copy over all the built dependencies to Travis cache
|
||||||
|
if [ "`cat $CACHE_DIR/hash`" != "`sha256sum windows/cross-compile/build.sh`" ] && ( [ "$STAGE" == "stage1" ] || [ "$STAGE" == "stage2" ] )
|
||||||
|
then
|
||||||
|
# Clear out the cache
|
||||||
|
rm -rf "$CACHE_DIR"/*
|
||||||
|
touch "$CACHE_DIR"/hash
|
||||||
|
cp -a workspace/"$ARCH"/dep-cache/* "$CACHE_DIR"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Update the hash
|
||||||
|
if [ "`cat $CACHE_DIR/hash`" != "`sha256sum windows/cross-compile/build.sh`" ] && [ "$STAGE" == "stage2" ]
|
||||||
|
then
|
||||||
|
sha256sum windows/cross-compile/build.sh > "$CACHE_DIR"/hash
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Purely for debugging
|
||||||
|
touch "$CACHE_DIR"/"$STAGE"
|
||||||
|
ls -lbh "$CACHE_DIR"
|
|
@ -48,21 +48,21 @@ sudo docker run --rm \
|
||||||
-v /absolute/path/to/your/workspace:/workspace \
|
-v /absolute/path/to/your/workspace:/workspace \
|
||||||
-v /absolute/path/to/your/script:/script \
|
-v /absolute/path/to/your/script:/script \
|
||||||
-v /absolute/path/to/your/qtox:/qtox \
|
-v /absolute/path/to/your/qtox:/qtox \
|
||||||
ubuntu:16.04 \
|
debian:stretch-slim \
|
||||||
/bin/bash /script/build.sh i686 release
|
/bin/bash /script/build.sh i686 release
|
||||||
```
|
```
|
||||||
|
|
||||||
If you are a qTox developer, you might want to instead run
|
If you are a qTox developer, you might want to instead run
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
# Get shell inside Ubuntu 16.04 container so that you can poke around if needed
|
# Get shell inside Debian Stretch container so that you can poke around if needed
|
||||||
sudo docker run -it \
|
sudo docker run -it \
|
||||||
--rm \
|
--rm \
|
||||||
-v /absolute/path/to/your/workspace:/workspace \
|
-v /absolute/path/to/your/workspace:/workspace \
|
||||||
-v /absolute/path/to/your/script:/script \
|
-v /absolute/path/to/your/script:/script \
|
||||||
-v /absolute/path/to/your/qtox:/qtox \
|
-v /absolute/path/to/your/qtox:/qtox \
|
||||||
ubuntu:16.04 \
|
debian:stretch-slim \
|
||||||
/bin/bash
|
/bin/bash
|
||||||
# Run the script
|
# Run the script
|
||||||
bash /script/build.sh i686 release
|
bash /script/build.sh i686 release
|
||||||
```
|
```
|
||||||
|
|
|
@ -24,22 +24,17 @@
|
||||||
|
|
||||||
# Known issues:
|
# Known issues:
|
||||||
# - Doesn't build qTox updater, because it wasn't ported to cmake yet and
|
# - Doesn't build qTox updater, because it wasn't ported to cmake yet and
|
||||||
# because it requires static Qt, which means we'd need to build Qt twice,
|
# because it requires static Qt, which means we'd need to build Qt twice, and
|
||||||
# and building Qt takes really long time.
|
# building Qt takes really long time.
|
||||||
#
|
#
|
||||||
# - Doesn't create an installer because there is no NSIS 3 in Ubuntu. We could
|
# - Doesn't create an installer because there is no NSIS 3 in Debian Stable. We
|
||||||
# switch to Debian instead and backport it from Experimental, which is what
|
# could backport it from Experimental, which is what we do on Jenkins, but
|
||||||
# we do on Jenkins, but since we don't build an updater, we might as well
|
# since we don't build an updater, we might as well just do the nightly qTox
|
||||||
# just do the nightly qTox build: no updater, no installer.
|
# build: no updater, no installer.
|
||||||
#
|
|
||||||
# - Qt from 5.8.0 to 5.9.1 doesn't cross-compile to Windows due to
|
|
||||||
# https://bugreports.qt.io/browse/QTBUG-61740. Should be fixed in 5.9.2. You
|
|
||||||
# can easily patch it though, just one sed command, but I guess we will wait
|
|
||||||
# for 5.9.2.
|
|
||||||
#
|
#
|
||||||
# - FFmpeg 3.3 doesn't cross-compile correctly, qTox build fails when linking
|
# - FFmpeg 3.3 doesn't cross-compile correctly, qTox build fails when linking
|
||||||
# against the 3.3 FFmpeg. They have removed `--enable-memalign-hack` switch,
|
# against the 3.3 FFmpeg. They have removed `--enable-memalign-hack` switch,
|
||||||
# which might be what causes this.
|
# which might be what causes this. Further research needed.
|
||||||
|
|
||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
@ -53,29 +48,28 @@ readonly QTOX_SRC_DIR="/qtox"
|
||||||
|
|
||||||
|
|
||||||
# Make sure we run in an expected environment
|
# Make sure we run in an expected environment
|
||||||
|
if [ ! -f /etc/os-release ] || ! cat /etc/os-release | grep -qi 'stretch'
|
||||||
if ! grep -q 'buntu 16\.04' /etc/lsb-release
|
|
||||||
then
|
then
|
||||||
echo "Error: This script should be run on Ubuntu 16.04."
|
echo "Error: This script should be run on Debian Stretch."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -d "$WORKSPACE_DIR" ] || [ ! -d "$SCRIPT_DIR" ] || [ ! -d "$QTOX_SRC_DIR" ]
|
if [ ! -d "$WORKSPACE_DIR" ] || [ ! -d "$SCRIPT_DIR" ] || [ ! -d "$QTOX_SRC_DIR" ]
|
||||||
then
|
then
|
||||||
echo "Error: At least one of $WORKSPACE_DIR, $SCRIPT_DIR or $QTOX_SRC_DIR directories is missing."
|
echo "Error: At least one of $WORKSPACE_DIR, $SCRIPT_DIR or $QTOX_SRC_DIR directories is missing."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -d "$QTOX_SRC_DIR/src" ]
|
if [ ! -d "$QTOX_SRC_DIR/src" ]
|
||||||
then
|
then
|
||||||
echo "Error: $QTOX_SRC_DIR/src directory is missing, make sure $QTOX_SRC_DIR contains qTox source code."
|
echo "Error: $QTOX_SRC_DIR/src directory is missing, make sure $QTOX_SRC_DIR contains qTox source code."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$(id -u)" != "0" ]
|
if [ "$(id -u)" != "0" ]
|
||||||
then
|
then
|
||||||
echo "Error: This script must be run as root."
|
echo "Error: This script must be run as root."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
@ -168,6 +162,7 @@ export MAKEFLAGS
|
||||||
|
|
||||||
# Helper functions
|
# Helper functions
|
||||||
|
|
||||||
|
# We check sha256 of all tarballs we download
|
||||||
check_sha256()
|
check_sha256()
|
||||||
{
|
{
|
||||||
if ! ( echo "$1 $2" | sha256sum -c --status - )
|
if ! ( echo "$1 $2" | sha256sum -c --status - )
|
||||||
|
@ -182,19 +177,31 @@ check_sha256()
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Strip binaries to reduce file size, we don't need this information anyway
|
||||||
|
strip_all()
|
||||||
|
{
|
||||||
|
set +e
|
||||||
|
for PREFIX_DIR in $DEP_DIR/*; do
|
||||||
|
strip --strip-unneeded $PREFIX_DIR/bin/*
|
||||||
|
$ARCH-w64-mingw32-strip --strip-unneeded $PREFIX_DIR/bin/*
|
||||||
|
$ARCH-w64-mingw32-strip --strip-unneeded $PREFIX_DIR/lib/*
|
||||||
|
done
|
||||||
|
set -e
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
# OpenSSL
|
# OpenSSL
|
||||||
|
|
||||||
OPENSSL_PREFIX_DIR="$DEP_DIR/libopenssl"
|
OPENSSL_PREFIX_DIR="$DEP_DIR/libopenssl"
|
||||||
|
OPENSSL_VERSION=1.0.2l
|
||||||
|
OPENSSL_HASH="ce07195b659e75f4e1db43552860070061f156a98bb37b672b101ba6e3ddf30c"
|
||||||
if [ ! -f "$OPENSSL_PREFIX_DIR/done" ]
|
if [ ! -f "$OPENSSL_PREFIX_DIR/done" ]
|
||||||
then
|
then
|
||||||
rm -rf "$OPENSSL_PREFIX_DIR"
|
rm -rf "$OPENSSL_PREFIX_DIR"
|
||||||
mkdir -p "$OPENSSL_PREFIX_DIR"
|
mkdir -p "$OPENSSL_PREFIX_DIR"
|
||||||
|
|
||||||
OPENSSL_VERSION=1.0.2l
|
|
||||||
|
|
||||||
wget https://www.openssl.org/source/openssl-$OPENSSL_VERSION.tar.gz
|
wget https://www.openssl.org/source/openssl-$OPENSSL_VERSION.tar.gz
|
||||||
check_sha256 "ce07195b659e75f4e1db43552860070061f156a98bb37b672b101ba6e3ddf30c" "openssl-$OPENSSL_VERSION.tar.gz"
|
check_sha256 "$OPENSSL_HASH" "openssl-$OPENSSL_VERSION.tar.gz"
|
||||||
bsdtar -xf openssl*.tar.gz
|
bsdtar -xf openssl*.tar.gz
|
||||||
rm openssl*.tar.gz
|
rm openssl*.tar.gz
|
||||||
cd openssl*
|
cd openssl*
|
||||||
|
@ -211,18 +218,25 @@ then
|
||||||
./Configure $CONFIGURE_OPTIONS
|
./Configure $CONFIGURE_OPTIONS
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
touch $OPENSSL_PREFIX_DIR/done
|
echo -n $OPENSSL_VERSION > $OPENSSL_PREFIX_DIR/done
|
||||||
|
|
||||||
CONFIGURE_OPTIONS=""
|
CONFIGURE_OPTIONS=""
|
||||||
|
|
||||||
cd ..
|
cd ..
|
||||||
rm -rf ./openssl*
|
rm -rf ./openssl*
|
||||||
|
else
|
||||||
|
echo "Using cached build of OpenSSL `cat $OPENSSL_PREFIX_DIR/done`"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Qt
|
# Qt
|
||||||
|
|
||||||
QT_PREFIX_DIR="$DEP_DIR/libqt5"
|
QT_PREFIX_DIR="$DEP_DIR/libqt5"
|
||||||
|
QT_MAJOR=5
|
||||||
|
QT_MINOR=9
|
||||||
|
QT_PATCH=2
|
||||||
|
QT_VERSION=$QT_MAJOR.$QT_MINOR.$QT_PATCH
|
||||||
|
QT_HASH="6c6171a4d1ea3fbd4212d6a04899650218583df3ec583a8a6a4a589fe18620ff"
|
||||||
if [ ! -f "$QT_PREFIX_DIR/done" ]
|
if [ ! -f "$QT_PREFIX_DIR/done" ]
|
||||||
then
|
then
|
||||||
rm -rf "$QT_PREFIX_DIR"
|
rm -rf "$QT_PREFIX_DIR"
|
||||||
|
@ -230,13 +244,8 @@ then
|
||||||
|
|
||||||
QT_MIRROR=http://qt.mirror.constant.com
|
QT_MIRROR=http://qt.mirror.constant.com
|
||||||
|
|
||||||
QT_MAJOR=5
|
|
||||||
QT_MINOR=6
|
|
||||||
QT_PATCH=3
|
|
||||||
|
|
||||||
QT_VERSION=$QT_MAJOR.$QT_MINOR.$QT_PATCH
|
|
||||||
wget $QT_MIRROR/official_releases/qt/$QT_MAJOR.$QT_MINOR/$QT_VERSION/single/qt-everywhere-opensource-src-$QT_VERSION.tar.xz
|
wget $QT_MIRROR/official_releases/qt/$QT_MAJOR.$QT_MINOR/$QT_VERSION/single/qt-everywhere-opensource-src-$QT_VERSION.tar.xz
|
||||||
check_sha256 "2fa0cf2e5e8841b29a4be62062c1a65c4f6f2cf1beaf61a5fd661f520cd776d0" "qt-everywhere-opensource-src-$QT_VERSION.tar.xz"
|
check_sha256 "$QT_HASH" "qt-everywhere-opensource-src-$QT_VERSION.tar.xz"
|
||||||
bsdtar -xf qt*.tar.xz
|
bsdtar -xf qt*.tar.xz
|
||||||
rm qt*.tar.xz
|
rm qt*.tar.xz
|
||||||
cd qt*
|
cd qt*
|
||||||
|
@ -244,6 +253,20 @@ then
|
||||||
export PKG_CONFIG_PATH="$OPENSSL_PREFIX_DIR/lib/pkgconfig"
|
export PKG_CONFIG_PATH="$OPENSSL_PREFIX_DIR/lib/pkgconfig"
|
||||||
export OPENSSL_LIBS="$(pkg-config --libs openssl)"
|
export OPENSSL_LIBS="$(pkg-config --libs openssl)"
|
||||||
|
|
||||||
|
# Fix https://bugreports.qt.io/browse/QTBUG-63637 present in Qt 5.9.2
|
||||||
|
echo "QMAKE_LINK_OBJECT_MAX = 10" >> qtbase/mkspecs/win32-g++/qmake.conf
|
||||||
|
echo "QMAKE_LINK_OBJECT_SCRIPT = object_script" >> qtbase/mkspecs/win32-g++/qmake.conf
|
||||||
|
|
||||||
|
# So, apparently Travis CI terminate a build if it generates more than 4mb of output
|
||||||
|
# which happens when building Qt
|
||||||
|
CONFIGURE_EXTRA=""
|
||||||
|
set +u
|
||||||
|
if [ "$TRAVIS_CI_STAGE" == "stage1" ]
|
||||||
|
then
|
||||||
|
CONFIGURE_EXTRA="-silent"
|
||||||
|
fi
|
||||||
|
set -u
|
||||||
|
|
||||||
./configure -prefix $QT_PREFIX_DIR \
|
./configure -prefix $QT_PREFIX_DIR \
|
||||||
-release \
|
-release \
|
||||||
-shared \
|
-shared \
|
||||||
|
@ -256,22 +279,42 @@ then
|
||||||
-nomake examples \
|
-nomake examples \
|
||||||
-nomake tools \
|
-nomake tools \
|
||||||
-nomake tests \
|
-nomake tests \
|
||||||
-skip translations \
|
-skip 3d \
|
||||||
-skip doc \
|
|
||||||
-skip qtdeclarative \
|
|
||||||
-skip activeqt \
|
-skip activeqt \
|
||||||
-skip qtwebsockets \
|
-skip androidextras \
|
||||||
-skip qtscript \
|
-skip canvas3d \
|
||||||
-skip qtquickcontrols \
|
-skip charts \
|
||||||
-skip qtconnectivity \
|
-skip connectivity \
|
||||||
-skip qtenginio \
|
-skip datavis3d \
|
||||||
-skip qtsensors \
|
-skip declarative \
|
||||||
-skip qtserialport \
|
-skip doc \
|
||||||
-skip qtlocation \
|
-skip enginio \
|
||||||
-skip qtgraphicaleffects \
|
-skip gamepad \
|
||||||
-skip qtimageformats \
|
-skip graphicaleffects \
|
||||||
-skip webchannel \
|
-skip imageformats \
|
||||||
|
-skip location \
|
||||||
|
-skip macextras \
|
||||||
-skip multimedia \
|
-skip multimedia \
|
||||||
|
-skip networkauth \
|
||||||
|
-skip purchasing \
|
||||||
|
-skip quickcontrols \
|
||||||
|
-skip quickcontrols2 \
|
||||||
|
-skip remoteobjects \
|
||||||
|
-skip script \
|
||||||
|
-skip scxml \
|
||||||
|
-skip sensors \
|
||||||
|
-skip serialbus \
|
||||||
|
-skip serialport \
|
||||||
|
-skip speech \
|
||||||
|
-skip translations \
|
||||||
|
-skip virtualkeyboard \
|
||||||
|
-skip wayland \
|
||||||
|
-skip webchannel \
|
||||||
|
-skip webengine \
|
||||||
|
-skip websockets \
|
||||||
|
-skip webview \
|
||||||
|
-skip x11extras \
|
||||||
|
-skip xmlpatterns \
|
||||||
-no-dbus \
|
-no-dbus \
|
||||||
-no-icu \
|
-no-icu \
|
||||||
-no-qml-debug \
|
-no-qml-debug \
|
||||||
|
@ -279,30 +322,47 @@ then
|
||||||
-qt-libjpeg \
|
-qt-libjpeg \
|
||||||
-qt-libpng \
|
-qt-libpng \
|
||||||
-qt-zlib \
|
-qt-zlib \
|
||||||
-qt-pcre
|
-qt-pcre \
|
||||||
|
-opengl desktop $CONFIGURE_EXTRA
|
||||||
|
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
touch $QT_PREFIX_DIR/done
|
echo -n $QT_VERSION > $QT_PREFIX_DIR/done
|
||||||
|
|
||||||
unset PKG_CONFIG_PATH
|
unset PKG_CONFIG_PATH
|
||||||
unset OPENSSL_LIBS
|
unset OPENSSL_LIBS
|
||||||
|
|
||||||
cd ..
|
cd ..
|
||||||
rm -rf ./qt*
|
rm -rf ./qt*
|
||||||
|
else
|
||||||
|
echo "Using cached build of Qt `cat $QT_PREFIX_DIR/done`"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Stop here if running the first stage on Travis CI
|
||||||
|
set +u
|
||||||
|
if [ "$TRAVIS_CI_STAGE" == "stage1" ]
|
||||||
|
then
|
||||||
|
# Strip to reduce cache size
|
||||||
|
strip_all
|
||||||
|
# Chmod since everything is root:root
|
||||||
|
chmod 777 -R "$WORKSPACE_DIR"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
set -u
|
||||||
|
|
||||||
|
|
||||||
# SQLCipher
|
# SQLCipher
|
||||||
|
|
||||||
SQLCIPHER_PREFIX_DIR="$DEP_DIR/libsqlcipher"
|
SQLCIPHER_PREFIX_DIR="$DEP_DIR/libsqlcipher"
|
||||||
|
SQLCIPHER_VERSION=v3.4.1
|
||||||
if [ ! -f "$SQLCIPHER_PREFIX_DIR/done" ]
|
if [ ! -f "$SQLCIPHER_PREFIX_DIR/done" ]
|
||||||
then
|
then
|
||||||
rm -rf "$SQLCIPHER_PREFIX_DIR"
|
rm -rf "$SQLCIPHER_PREFIX_DIR"
|
||||||
mkdir -p "$SQLCIPHER_PREFIX_DIR"
|
mkdir -p "$SQLCIPHER_PREFIX_DIR"
|
||||||
|
|
||||||
git clone \
|
git clone \
|
||||||
--branch v3.4.1 \
|
--branch $SQLCIPHER_VERSION \
|
||||||
--depth 1 \
|
--depth 1 \
|
||||||
https://github.com/sqlcipher/sqlcipher \
|
https://github.com/sqlcipher/sqlcipher \
|
||||||
sqlcipher
|
sqlcipher
|
||||||
|
@ -342,24 +402,29 @@ EOF
|
||||||
|
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
touch $SQLCIPHER_PREFIX_DIR/done
|
echo -n $SQLCIPHER_VERSION > $SQLCIPHER_PREFIX_DIR/done
|
||||||
|
|
||||||
cd ..
|
cd ..
|
||||||
rm -rf ./sqlcipher
|
rm -rf ./sqlcipher
|
||||||
|
else
|
||||||
|
echo "Using cached build of SQLCipher `cat $SQLCIPHER_PREFIX_DIR/done`"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# FFmpeg
|
# FFmpeg
|
||||||
|
|
||||||
FFMPEG_PREFIX_DIR="$DEP_DIR/libffmpeg"
|
FFMPEG_PREFIX_DIR="$DEP_DIR/libffmpeg"
|
||||||
|
FFMPEG_VERSION=3.2.8
|
||||||
|
FFMPEG_HASH="42e7362692318afc666f14378dd445effa9a1b09787504a6ab5811fe442674cd"
|
||||||
if [ ! -f "$FFMPEG_PREFIX_DIR/done" ]
|
if [ ! -f "$FFMPEG_PREFIX_DIR/done" ]
|
||||||
then
|
then
|
||||||
rm -rf "$FFMPEG_PREFIX_DIR"
|
rm -rf "$FFMPEG_PREFIX_DIR"
|
||||||
mkdir -p "$FFMPEG_PREFIX_DIR"
|
mkdir -p "$FFMPEG_PREFIX_DIR"
|
||||||
|
|
||||||
wget https://www.ffmpeg.org/releases/ffmpeg-3.2.6.tar.xz
|
wget https://www.ffmpeg.org/releases/ffmpeg-$FFMPEG_VERSION.tar.xz
|
||||||
check_sha256 "3751cebb5c71a861288267769114d12b966a7703a686a325d90a93707f3a6d9f" "ffmpeg-3.2.6.tar.xz"
|
check_sha256 "$FFMPEG_HASH" "ffmpeg-$FFMPEG_VERSION.tar.xz"
|
||||||
bsdtar -xf ffmpeg*.tar.xz
|
bsdtar -xf ffmpeg*.tar.xz
|
||||||
|
rm ffmpeg*.tar.xz
|
||||||
cd ffmpeg*
|
cd ffmpeg*
|
||||||
|
|
||||||
if [[ "$ARCH" == "x86_64"* ]]
|
if [[ "$ARCH" == "x86_64"* ]]
|
||||||
|
@ -419,18 +484,21 @@ then
|
||||||
--enable-memalign-hack
|
--enable-memalign-hack
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
touch $FFMPEG_PREFIX_DIR/done
|
echo -n $FFMPEG_VERSION > $FFMPEG_PREFIX_DIR/done
|
||||||
|
|
||||||
CONFIGURE_OPTIONS=""
|
CONFIGURE_OPTIONS=""
|
||||||
|
|
||||||
cd ..
|
cd ..
|
||||||
rm -rf ./ffmpeg*
|
rm -rf ./ffmpeg*
|
||||||
|
else
|
||||||
|
echo "Using cached build of FFmpeg `cat $FFMPEG_PREFIX_DIR/done`"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Openal-soft (irungentoo's fork)
|
# Openal-soft (irungentoo's fork)
|
||||||
|
|
||||||
OPENAL_PREFIX_DIR="$DEP_DIR/libopenal"
|
OPENAL_PREFIX_DIR="$DEP_DIR/libopenal"
|
||||||
|
OPENAL_VERSION=b80570bed017de60b67c6452264c634085c3b148
|
||||||
if [ ! -f "$OPENAL_PREFIX_DIR/done" ]
|
if [ ! -f "$OPENAL_PREFIX_DIR/done" ]
|
||||||
then
|
then
|
||||||
rm -rf "$OPENAL_PREFIX_DIR"
|
rm -rf "$OPENAL_PREFIX_DIR"
|
||||||
|
@ -438,7 +506,7 @@ then
|
||||||
|
|
||||||
git clone https://github.com/irungentoo/openal-soft-tox openal-soft-tox
|
git clone https://github.com/irungentoo/openal-soft-tox openal-soft-tox
|
||||||
cd openal*
|
cd openal*
|
||||||
git checkout b80570bed017de60b67c6452264c634085c3b148
|
git checkout $OPENAL_VERSION
|
||||||
|
|
||||||
echo "
|
echo "
|
||||||
SET(CMAKE_SYSTEM_NAME Windows)
|
SET(CMAKE_SYSTEM_NAME Windows)
|
||||||
|
@ -466,16 +534,19 @@ then
|
||||||
|
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
touch $OPENAL_PREFIX_DIR/done
|
echo -n $OPENAL_VERSION > $OPENAL_PREFIX_DIR/done
|
||||||
|
|
||||||
cd ..
|
cd ..
|
||||||
rm -rf ./openal*
|
rm -rf ./openal*
|
||||||
|
else
|
||||||
|
echo "Using cached build of irungentoo's OpenAL-Soft fork `cat $OPENAL_PREFIX_DIR/done`"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Filteraudio
|
# Filteraudio
|
||||||
|
|
||||||
FILTERAUDIO_PREFIX_DIR="$DEP_DIR/libfilteraudio"
|
FILTERAUDIO_PREFIX_DIR="$DEP_DIR/libfilteraudio"
|
||||||
|
FILTERAUDIO_VERSION=ada2f4fdc04940cdeee47caffe43add4fa017096
|
||||||
if [ ! -f "$FILTERAUDIO_PREFIX_DIR/done" ]
|
if [ ! -f "$FILTERAUDIO_PREFIX_DIR/done" ]
|
||||||
then
|
then
|
||||||
rm -rf "$FILTERAUDIO_PREFIX_DIR"
|
rm -rf "$FILTERAUDIO_PREFIX_DIR"
|
||||||
|
@ -483,7 +554,7 @@ then
|
||||||
|
|
||||||
git clone https://github.com/irungentoo/filter_audio filter_audio
|
git clone https://github.com/irungentoo/filter_audio filter_audio
|
||||||
cd filter*
|
cd filter*
|
||||||
git checkout ada2f4fdc04940cdeee47caffe43add4fa017096
|
git checkout $FILTERAUDIO_VERSION
|
||||||
|
|
||||||
$ARCH-w64-mingw32-gcc -O2 -g0 -c \
|
$ARCH-w64-mingw32-gcc -O2 -g0 -c \
|
||||||
aec/aec_core.c \
|
aec/aec_core.c \
|
||||||
|
@ -591,23 +662,27 @@ then
|
||||||
mkdir $FILTERAUDIO_PREFIX_DIR/lib
|
mkdir $FILTERAUDIO_PREFIX_DIR/lib
|
||||||
cp filter_audio.h $FILTERAUDIO_PREFIX_DIR/include
|
cp filter_audio.h $FILTERAUDIO_PREFIX_DIR/include
|
||||||
cp libfilteraudio.a $FILTERAUDIO_PREFIX_DIR/lib
|
cp libfilteraudio.a $FILTERAUDIO_PREFIX_DIR/lib
|
||||||
touch $FILTERAUDIO_PREFIX_DIR/done
|
echo -n $FILTERAUDIO_VERSION > $FILTERAUDIO_PREFIX_DIR/done
|
||||||
|
|
||||||
cd ..
|
cd ..
|
||||||
rm -rf ./filter*
|
rm -rf ./filter*
|
||||||
|
else
|
||||||
|
echo "Using cached build of Filteraudio `cat $FILTERAUDIO_PREFIX_DIR/done`"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# QREncode
|
# QREncode
|
||||||
|
|
||||||
QRENCODE_PREFIX_DIR="$DEP_DIR/libqrencode"
|
QRENCODE_PREFIX_DIR="$DEP_DIR/libqrencode"
|
||||||
|
QRENCODE_VERSION=3.4.4
|
||||||
|
QRENCODE_HASH="efe5188b1ddbcbf98763b819b146be6a90481aac30cfc8d858ab78a19cde1fa5"
|
||||||
if [ ! -f "$QRENCODE_PREFIX_DIR/done" ]
|
if [ ! -f "$QRENCODE_PREFIX_DIR/done" ]
|
||||||
then
|
then
|
||||||
rm -rf "$QRENCODE_PREFIX_DIR"
|
rm -rf "$QRENCODE_PREFIX_DIR"
|
||||||
mkdir -p "$QRENCODE_PREFIX_DIR"
|
mkdir -p "$QRENCODE_PREFIX_DIR"
|
||||||
|
|
||||||
wget https://fukuchi.org/works/qrencode/qrencode-3.4.4.tar.bz2
|
wget https://fukuchi.org/works/qrencode/qrencode-$QRENCODE_VERSION.tar.bz2
|
||||||
check_sha256 "efe5188b1ddbcbf98763b819b146be6a90481aac30cfc8d858ab78a19cde1fa5" "qrencode-3.4.4.tar.bz2"
|
check_sha256 "$QRENCODE_HASH" "qrencode-$QRENCODE_VERSION.tar.bz2"
|
||||||
bsdtar -xf qrencode*.tar.bz2
|
bsdtar -xf qrencode*.tar.bz2
|
||||||
rm qrencode*.tar.bz2
|
rm qrencode*.tar.bz2
|
||||||
cd qrencode*
|
cd qrencode*
|
||||||
|
@ -621,23 +696,27 @@ then
|
||||||
--without-debug
|
--without-debug
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
touch $QRENCODE_PREFIX_DIR/done
|
echo -n $QRENCODE_VERSION > $QRENCODE_PREFIX_DIR/done
|
||||||
|
|
||||||
cd ..
|
cd ..
|
||||||
rm -rf ./qrencode*
|
rm -rf ./qrencode*
|
||||||
|
else
|
||||||
|
echo "Using cached build of QREncode `cat $QRENCODE_PREFIX_DIR/done`"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Exif
|
# Exif
|
||||||
|
|
||||||
EXIF_PREFIX_DIR="$DEP_DIR/libexif"
|
EXIF_PREFIX_DIR="$DEP_DIR/libexif"
|
||||||
|
EXIF_VERSION=0.6.21
|
||||||
|
EXIF_HASH="16cdaeb62eb3e6dfab2435f7d7bccd2f37438d21c5218ec4e58efa9157d4d41a"
|
||||||
if [ ! -f "$EXIF_PREFIX_DIR/done" ]
|
if [ ! -f "$EXIF_PREFIX_DIR/done" ]
|
||||||
then
|
then
|
||||||
rm -rf "$EXIF_PREFIX_DIR"
|
rm -rf "$EXIF_PREFIX_DIR"
|
||||||
mkdir -p "$EXIF_PREFIX_DIR"
|
mkdir -p "$EXIF_PREFIX_DIR"
|
||||||
|
|
||||||
wget https://sourceforge.net/projects/libexif/files/libexif/0.6.21/libexif-0.6.21.tar.bz2
|
wget https://sourceforge.net/projects/libexif/files/libexif/0.6.21/libexif-$EXIF_VERSION.tar.bz2
|
||||||
check_sha256 "16cdaeb62eb3e6dfab2435f7d7bccd2f37438d21c5218ec4e58efa9157d4d41a" "libexif-0.6.21.tar.bz2"
|
check_sha256 "$EXIF_HASH" "libexif-$EXIF_VERSION.tar.bz2"
|
||||||
bsdtar -xf libexif*.tar.bz2
|
bsdtar -xf libexif*.tar.bz2
|
||||||
rm libexif*.tar.bz2
|
rm libexif*.tar.bz2
|
||||||
cd libexif*
|
cd libexif*
|
||||||
|
@ -650,23 +729,26 @@ then
|
||||||
--disable-nls
|
--disable-nls
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
touch $EXIF_PREFIX_DIR/done
|
echo -n $EXIF_VERSION > $EXIF_PREFIX_DIR/done
|
||||||
|
|
||||||
cd ..
|
cd ..
|
||||||
rm -rf ./libexif*
|
rm -rf ./libexif*
|
||||||
|
else
|
||||||
|
echo "Using cached build of Exif `cat $EXIF_PREFIX_DIR/done`"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Opus
|
# Opus
|
||||||
|
|
||||||
OPUS_PREFIX_DIR="$DEP_DIR/libopus"
|
OPUS_PREFIX_DIR="$DEP_DIR/libopus"
|
||||||
|
OPUS_VERSION=v1.2.1
|
||||||
if [ ! -f "$OPUS_PREFIX_DIR/done" ]
|
if [ ! -f "$OPUS_PREFIX_DIR/done" ]
|
||||||
then
|
then
|
||||||
rm -rf "$OPUS_PREFIX_DIR"
|
rm -rf "$OPUS_PREFIX_DIR"
|
||||||
mkdir -p "$OPUS_PREFIX_DIR"
|
mkdir -p "$OPUS_PREFIX_DIR"
|
||||||
|
|
||||||
git clone \
|
git clone \
|
||||||
--branch v1.2.1 \
|
--branch $OPUS_VERSION \
|
||||||
--depth 1 \
|
--depth 1 \
|
||||||
git://git.opus-codec.org/opus.git \
|
git://git.opus-codec.org/opus.git \
|
||||||
opus
|
opus
|
||||||
|
@ -681,23 +763,26 @@ then
|
||||||
--disable-doc
|
--disable-doc
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
touch $OPUS_PREFIX_DIR/done
|
echo -n $OPUS_VERSION > $OPUS_PREFIX_DIR/done
|
||||||
|
|
||||||
cd ..
|
cd ..
|
||||||
rm -rf ./opus
|
rm -rf ./opus
|
||||||
|
else
|
||||||
|
echo "Using cached build of Opus `cat $OPUS_PREFIX_DIR/done`"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Sodium
|
# Sodium
|
||||||
|
|
||||||
SODIUM_PREFIX_DIR="$DEP_DIR/libsodium"
|
SODIUM_PREFIX_DIR="$DEP_DIR/libsodium"
|
||||||
|
SODIUM_VERSION=1.0.15
|
||||||
if [ ! -f "$SODIUM_PREFIX_DIR/done" ]
|
if [ ! -f "$SODIUM_PREFIX_DIR/done" ]
|
||||||
then
|
then
|
||||||
rm -rf "$SODIUM_PREFIX_DIR"
|
rm -rf "$SODIUM_PREFIX_DIR"
|
||||||
mkdir -p "$SODIUM_PREFIX_DIR"
|
mkdir -p "$SODIUM_PREFIX_DIR"
|
||||||
|
|
||||||
git clone \
|
git clone \
|
||||||
--branch 1.0.13 \
|
--branch $SODIUM_VERSION \
|
||||||
--depth 1 \
|
--depth 1 \
|
||||||
https://github.com/jedisct1/libsodium \
|
https://github.com/jedisct1/libsodium \
|
||||||
libsodium
|
libsodium
|
||||||
|
@ -711,23 +796,26 @@ then
|
||||||
--with-pic
|
--with-pic
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
touch $SODIUM_PREFIX_DIR/done
|
echo -n $SODIUM_VERSION > $SODIUM_PREFIX_DIR/done
|
||||||
|
|
||||||
cd ..
|
cd ..
|
||||||
rm -rf ./libsodium
|
rm -rf ./libsodium
|
||||||
|
else
|
||||||
|
echo "Using cached build of Sodium `cat $SODIUM_PREFIX_DIR/done`"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# VPX
|
# VPX
|
||||||
|
|
||||||
VPX_PREFIX_DIR="$DEP_DIR/libvpx"
|
VPX_PREFIX_DIR="$DEP_DIR/libvpx"
|
||||||
|
VPX_VERSION=v1.6.1
|
||||||
if [ ! -f "$VPX_PREFIX_DIR/done" ]
|
if [ ! -f "$VPX_PREFIX_DIR/done" ]
|
||||||
then
|
then
|
||||||
rm -rf "$VPX_PREFIX_DIR"
|
rm -rf "$VPX_PREFIX_DIR"
|
||||||
mkdir -p "$VPX_PREFIX_DIR"
|
mkdir -p "$VPX_PREFIX_DIR"
|
||||||
|
|
||||||
git clone \
|
git clone \
|
||||||
--branch v1.6.1 \
|
--branch $VPX_VERSION \
|
||||||
--depth 1 \
|
--depth 1 \
|
||||||
https://github.com/webmproject/libvpx \
|
https://github.com/webmproject/libvpx \
|
||||||
libvpx
|
libvpx
|
||||||
|
@ -742,32 +830,35 @@ then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
CROSS="$ARCH-w64-mingw32-" ./configure --target="$VPX_TARGET" \
|
CROSS="$ARCH-w64-mingw32-" ./configure --target="$VPX_TARGET" \
|
||||||
--prefix="$VPX_PREFIX_DIR" \
|
--prefix="$VPX_PREFIX_DIR" \
|
||||||
--disable-shared \
|
--disable-shared \
|
||||||
--enable-static \
|
--enable-static \
|
||||||
--disable-examples \
|
--disable-examples \
|
||||||
--disable-tools \
|
--disable-tools \
|
||||||
--disable-docs \
|
--disable-docs \
|
||||||
--disable-unit-tests
|
--disable-unit-tests
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
touch $VPX_PREFIX_DIR/done
|
echo -n $VPX_VERSION > $VPX_PREFIX_DIR/done
|
||||||
|
|
||||||
cd ..
|
cd ..
|
||||||
rm -rf ./libvpx
|
rm -rf ./libvpx
|
||||||
|
else
|
||||||
|
echo "Using cached build of VPX `cat $VPX_PREFIX_DIR/done`"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Toxcore
|
# Toxcore
|
||||||
|
|
||||||
TOXCORE_PREFIX_DIR="$DEP_DIR/libtoxcore"
|
TOXCORE_PREFIX_DIR="$DEP_DIR/libtoxcore"
|
||||||
|
TOXCORE_VERSION=v0.1.10
|
||||||
if [ ! -f "$TOXCORE_PREFIX_DIR/done" ]
|
if [ ! -f "$TOXCORE_PREFIX_DIR/done" ]
|
||||||
then
|
then
|
||||||
rm -rf "$TOXCORE_PREFIX_DIR"
|
rm -rf "$TOXCORE_PREFIX_DIR"
|
||||||
mkdir -p "$TOXCORE_PREFIX_DIR"
|
mkdir -p "$TOXCORE_PREFIX_DIR"
|
||||||
|
|
||||||
git clone \
|
git clone \
|
||||||
--branch v0.1.10 \
|
--branch $TOXCORE_VERSION \
|
||||||
--depth 1 \
|
--depth 1 \
|
||||||
https://github.com/TokTok/c-toxcore \
|
https://github.com/TokTok/c-toxcore \
|
||||||
c-toxcore
|
c-toxcore
|
||||||
|
@ -796,25 +887,31 @@ then
|
||||||
|
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
touch $TOXCORE_PREFIX_DIR/done
|
echo -n $TOXCORE_VERSION > $TOXCORE_PREFIX_DIR/done
|
||||||
|
|
||||||
unset PKG_CONFIG_PATH
|
unset PKG_CONFIG_PATH
|
||||||
unset PKG_CONFIG_LIBDIR
|
unset PKG_CONFIG_LIBDIR
|
||||||
|
|
||||||
cd ..
|
cd ..
|
||||||
rm -rf ./c-toxcore
|
rm -rf ./c-toxcore
|
||||||
|
else
|
||||||
|
echo "Using cached build of Toxcore `cat $TOXCORE_PREFIX_DIR/done`"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Strip to reduce file size, we don't need this information anyway.
|
# Stop here if running the second stage on Travis CI
|
||||||
|
set +u
|
||||||
|
if [ "$TRAVIS_CI_STAGE" == "stage2" ]
|
||||||
|
then
|
||||||
|
# Strip to reduce cache size
|
||||||
|
strip_all
|
||||||
|
# Chmod since everything is root:root
|
||||||
|
chmod 777 -R "$WORKSPACE_DIR"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
set -u
|
||||||
|
|
||||||
set +e
|
strip_all
|
||||||
for PREFIX_DIR in $DEP_DIR/*; do
|
|
||||||
strip --strip-unneeded $PREFIX_DIR/bin/*
|
|
||||||
$ARCH-w64-mingw32-strip --strip-unneeded $PREFIX_DIR/bin/*
|
|
||||||
$ARCH-w64-mingw32-strip --strip-unneeded $PREFIX_DIR/lib/*
|
|
||||||
done
|
|
||||||
set -e
|
|
||||||
|
|
||||||
|
|
||||||
# qTox
|
# qTox
|
||||||
|
|
Loading…
Reference in New Issue
Block a user