mirror of
https://github.com/qTox/qTox.git
synced 2024-03-22 14:00:36 +08:00
Merge pull request #4676
Maxim Biro (3): fix(build): Add libexif to the Windows cross-compilation feat(build): Check sha256 of tarballs for Windows cross-compilation fix(build): Update toxcore and Qt versions for Windows cross-compilation
This commit is contained in:
commit
124c823983
|
@ -40,12 +40,6 @@
|
||||||
# - 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.
|
||||||
#
|
|
||||||
# - Toxcore v0.1.9 doesn't cross-compile to Windows due to a linking order
|
|
||||||
# issue in monolith_test https://github.com/TokTok/c-toxcore/pull/564. It's
|
|
||||||
# fixed in master, so we just wait checking out a stable master commit point
|
|
||||||
# until the next release. Once the next release occurs, we will be checking
|
|
||||||
# out that instead.
|
|
||||||
|
|
||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
@ -172,6 +166,23 @@ MAKEFLAGS=j$(nproc)
|
||||||
export MAKEFLAGS
|
export MAKEFLAGS
|
||||||
|
|
||||||
|
|
||||||
|
# Helper functions
|
||||||
|
|
||||||
|
check_sha256()
|
||||||
|
{
|
||||||
|
if ! ( echo "$1 $2" | sha256sum -c --status - )
|
||||||
|
then
|
||||||
|
echo "Error: sha256 of $2 doesn't match the known one."
|
||||||
|
echo "Expected: $1 $2"
|
||||||
|
echo -n "Got: "
|
||||||
|
sha256sum "$2"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
echo "sha256 matches the expected one: $1"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
# OpenSSL
|
# OpenSSL
|
||||||
|
|
||||||
OPENSSL_PREFIX_DIR="$DEP_DIR/libopenssl"
|
OPENSSL_PREFIX_DIR="$DEP_DIR/libopenssl"
|
||||||
|
@ -181,18 +192,9 @@ then
|
||||||
mkdir -p "$OPENSSL_PREFIX_DIR"
|
mkdir -p "$OPENSSL_PREFIX_DIR"
|
||||||
|
|
||||||
OPENSSL_VERSION=1.0.2l
|
OPENSSL_VERSION=1.0.2l
|
||||||
OPENSSL_SHA256_HASH=ce07195b659e75f4e1db43552860070061f156a98bb37b672b101ba6e3ddf30c
|
|
||||||
|
|
||||||
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"
|
||||||
if ! ( echo "$OPENSSL_SHA256_HASH openssl-$OPENSSL_VERSION.tar.gz" | sha256sum -c --status - )
|
|
||||||
then
|
|
||||||
echo "Error: sha256 of openssl-$OPENSSL_VERSION.tar.gz doesn't match the known one."
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
echo "sha256 matches the expected one: $OPENSSL_SHA256_HASH"
|
|
||||||
fi
|
|
||||||
|
|
||||||
bsdtar -xf openssl*.tar.gz
|
bsdtar -xf openssl*.tar.gz
|
||||||
rm openssl*.tar.gz
|
rm openssl*.tar.gz
|
||||||
cd openssl*
|
cd openssl*
|
||||||
|
@ -230,11 +232,11 @@ then
|
||||||
|
|
||||||
QT_MAJOR=5
|
QT_MAJOR=5
|
||||||
QT_MINOR=6
|
QT_MINOR=6
|
||||||
QT_PATCH=2
|
QT_PATCH=3
|
||||||
|
|
||||||
QT_VERSION=$QT_MAJOR.$QT_MINOR.$QT_PATCH
|
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"
|
||||||
bsdtar -xf qt*.tar.xz
|
bsdtar -xf qt*.tar.xz
|
||||||
rm qt*.tar.xz
|
rm qt*.tar.xz
|
||||||
cd qt*
|
cd qt*
|
||||||
|
@ -310,6 +312,8 @@ then
|
||||||
sed -i s/'LIBS="-lcrypto $LIBS"'/'LIBS="-lcrypto -lgdi32 $LIBS"'/g configure
|
sed -i s/'LIBS="-lcrypto $LIBS"'/'LIBS="-lcrypto -lgdi32 $LIBS"'/g configure
|
||||||
sed -i s/'if test "$TARGET_EXEEXT" = ".exe"'/'if test ".exe" = ".exe"'/g configure
|
sed -i s/'if test "$TARGET_EXEEXT" = ".exe"'/'if test ".exe" = ".exe"'/g configure
|
||||||
|
|
||||||
|
# Do not remove trailing whitespace and dont replace tabs with spaces in the patch below,
|
||||||
|
# otherwise the patch will fail to apply
|
||||||
> Makefile.in-patch cat << "EOF"
|
> Makefile.in-patch cat << "EOF"
|
||||||
--- Makefile.in 2017-07-24 04:33:46.944080013 +0000
|
--- Makefile.in 2017-07-24 04:33:46.944080013 +0000
|
||||||
+++ Makefile.in-patch 2017-07-24 04:50:47.340596990 +0000
|
+++ Makefile.in-patch 2017-07-24 04:50:47.340596990 +0000
|
||||||
|
@ -354,6 +358,7 @@ then
|
||||||
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-3.2.6.tar.xz
|
||||||
|
check_sha256 "3751cebb5c71a861288267769114d12b966a7703a686a325d90a93707f3a6d9f" "ffmpeg-3.2.6.tar.xz"
|
||||||
bsdtar -xf ffmpeg*.tar.xz
|
bsdtar -xf ffmpeg*.tar.xz
|
||||||
cd ffmpeg*
|
cd ffmpeg*
|
||||||
|
|
||||||
|
@ -602,6 +607,7 @@ then
|
||||||
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-3.4.4.tar.bz2
|
||||||
|
check_sha256 "efe5188b1ddbcbf98763b819b146be6a90481aac30cfc8d858ab78a19cde1fa5" "qrencode-3.4.4.tar.bz2"
|
||||||
bsdtar -xf qrencode*.tar.bz2
|
bsdtar -xf qrencode*.tar.bz2
|
||||||
rm qrencode*.tar.bz2
|
rm qrencode*.tar.bz2
|
||||||
cd qrencode*
|
cd qrencode*
|
||||||
|
@ -622,6 +628,35 @@ then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Exif
|
||||||
|
|
||||||
|
EXIF_PREFIX_DIR="$DEP_DIR/libexif"
|
||||||
|
if [ ! -f "$EXIF_PREFIX_DIR/done" ]
|
||||||
|
then
|
||||||
|
rm -rf "$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
|
||||||
|
check_sha256 "16cdaeb62eb3e6dfab2435f7d7bccd2f37438d21c5218ec4e58efa9157d4d41a" "libexif-0.6.21.tar.bz2"
|
||||||
|
bsdtar -xf libexif*.tar.bz2
|
||||||
|
rm libexif*.tar.bz2
|
||||||
|
cd libexif*
|
||||||
|
|
||||||
|
CFLAGS="-O2 -g0" ./configure --host="$ARCH-w64-mingw32" \
|
||||||
|
--prefix="$EXIF_PREFIX_DIR" \
|
||||||
|
--disable-shared \
|
||||||
|
--enable-static \
|
||||||
|
--disable-docs \
|
||||||
|
--disable-nls
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
touch $EXIF_PREFIX_DIR/done
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
rm -rf ./libexif*
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Opus
|
# Opus
|
||||||
|
|
||||||
OPUS_PREFIX_DIR="$DEP_DIR/libopus"
|
OPUS_PREFIX_DIR="$DEP_DIR/libopus"
|
||||||
|
@ -629,7 +664,7 @@ 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 v1.2.1 \
|
||||||
--depth 1 \
|
--depth 1 \
|
||||||
|
@ -731,9 +766,12 @@ then
|
||||||
rm -rf "$TOXCORE_PREFIX_DIR"
|
rm -rf "$TOXCORE_PREFIX_DIR"
|
||||||
mkdir -p "$TOXCORE_PREFIX_DIR"
|
mkdir -p "$TOXCORE_PREFIX_DIR"
|
||||||
|
|
||||||
git clone https://github.com/TokTok/c-toxcore
|
git clone \
|
||||||
|
--branch v0.1.10 \
|
||||||
|
--depth 1 \
|
||||||
|
https://github.com/TokTok/c-toxcore \
|
||||||
|
c-toxcore
|
||||||
cd c-toxcore
|
cd c-toxcore
|
||||||
git checkout 1b290c0d84d92fd28fc1f64f33bf4455d73e2e2e
|
|
||||||
|
|
||||||
export PKG_CONFIG_PATH="$OPUS_PREFIX_DIR/lib/pkgconfig:$SODIUM_PREFIX_DIR/lib/pkgconfig:$VPX_PREFIX_DIR/lib/pkgconfig"
|
export PKG_CONFIG_PATH="$OPUS_PREFIX_DIR/lib/pkgconfig:$SODIUM_PREFIX_DIR/lib/pkgconfig:$VPX_PREFIX_DIR/lib/pkgconfig"
|
||||||
export PKG_CONFIG_LIBDIR="/usr/$ARCH-w64-mingw32"
|
export PKG_CONFIG_LIBDIR="/usr/$ARCH-w64-mingw32"
|
||||||
|
|
Loading…
Reference in New Issue
Block a user