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

refactor(windows): Snorenotify build script

Fixing 7409e6b4cc.
This commit is contained in:
Maxim Biro 2020-10-04 09:38:25 -04:00
parent a59c960d81
commit 7803a7e0d6
No known key found for this signature in database
GPG Key ID: AB3AD9896472BFA4

View File

@ -130,10 +130,12 @@ apt-get update
apt-get install -y --no-install-recommends \ apt-get install -y --no-install-recommends \
autoconf \ autoconf \
automake \ automake \
build-essential \
bsdtar \ bsdtar \
build-essential \
ca-certificates \ ca-certificates \
cmake \ cmake \
curl \
extra-cmake-modules \
git \ git \
libtool \ libtool \
nsis \ nsis \
@ -142,10 +144,8 @@ apt-get install -y --no-install-recommends \
tclsh \ tclsh \
texinfo \ texinfo \
unzip \ unzip \
curl \
yasm \ yasm \
zip \ zip
extra-cmake-modules
if [[ "$ARCH" == "i686" ]] if [[ "$ARCH" == "i686" ]]
then then
@ -664,6 +664,7 @@ else
echo "Using cached build of Exif `cat $EXIF_PREFIX_DIR/done`" echo "Using cached build of Exif `cat $EXIF_PREFIX_DIR/done`"
fi fi
# Snorenotify # Snorenotify
SNORE_PREFIX_DIR="$DEP_DIR/snorenotify" SNORE_PREFIX_DIR="$DEP_DIR/snorenotify"
@ -680,45 +681,46 @@ then
bsdtar --no-same-owner --no-same-permissions -xf $SNORE_FILENAME bsdtar --no-same-owner --no-same-permissions -xf $SNORE_FILENAME
rm $SNORE_FILENAME rm $SNORE_FILENAME
cd snorenotify* cd snorenotify*
mkdir _build && cd _build mkdir _build && cd _build
PKG_CONFIG_PATH="" export PKG_CONFIG_PATH="$QT_PREFIX_DIR/lib/pkgconfig"
PKG_CONFIG_LIBDIR="" export PKG_CONFIG_LIBDIR="/usr/$ARCH-w64-mingw32"
CMAKE_FIND_ROOT_PATH=""
for PREFIX_DIR in $DEP_DIR/*; do
if [ -d $PREFIX_DIR/lib/pkgconfig ]
then
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$PREFIX_DIR/lib/pkgconfig"
export PKG_CONFIG_LIBDIR="$PKG_CONFIG_LIBDIR:$PREFIX_DIR/lib/pkgconfig"
fi
CMAKE_FIND_ROOT_PATH="$CMAKE_FIND_ROOT_PATH $PREFIX_DIR"
done
echo " echo "
SET(CMAKE_SYSTEM_NAME Windows) SET(CMAKE_SYSTEM_NAME Windows)
SET(CMAKE_C_COMPILER $ARCH-w64-mingw32-gcc)
SET(CMAKE_CXX_COMPILER $ARCH-w64-mingw32-g++)
SET(CMAKE_RC_COMPILER $ARCH-w64-mingw32-windres)
SET(CMAKE_FIND_ROOT_PATH /usr/$ARCH-w64-mingw32 $CMAKE_FIND_ROOT_PATH)
" > toolchain.cmake
cmake -DCMAKE_TOOLCHAIN_FILE=./toolchain.cmake \ SET(CMAKE_C_COMPILER $ARCH-w64-mingw32-gcc)
SET(CMAKE_CXX_COMPILER $ARCH-w64-mingw32-g++)
SET(CMAKE_RC_COMPILER $ARCH-w64-mingw32-windres)
SET(CMAKE_FIND_ROOT_PATH /usr/$ARCH-w64-mingw32 $QT_PREFIX_DIR)
" > toolchain.cmake
cmake -DCMAKE_INSTALL_PREFIX="$SNORE_PREFIX_DIR" \
-DCMAKE_BUILD_TYPE=Relase \ -DCMAKE_BUILD_TYPE=Relase \
-DCMAKE_INSTALL_PREFIX="$SNORE_PREFIX_DIR" \
-DBUILD_daemon=OFF \ -DBUILD_daemon=OFF \
-DBUILD_settings=OFF \ -DBUILD_settings=OFF \
-DBUILD_snoresend=OFF \ -DBUILD_snoresend=OFF \
-DCMAKE_TOOLCHAIN_FILE=./toolchain.cmake \
.. ..
make make
make install make install
cd ..
echo -n $SNORE_VERSION > $SNORE_PREFIX_DIR/done echo -n $SNORE_VERSION > $SNORE_PREFIX_DIR/done
unset PKG_CONFIG_PATH
unset PKG_CONFIG_LIBDIR
cd ..
cd .. cd ..
rm -rf ./snorenotify* rm -rf ./snorenotify*
else else
echo "Using cached build of snorenotify `cat $SNORE_PREFIX_DIR/done`" echo "Using cached build of snorenotify `cat $SNORE_PREFIX_DIR/done`"
fi fi
# Opus # Opus
OPUS_PREFIX_DIR="$DEP_DIR/libopus" OPUS_PREFIX_DIR="$DEP_DIR/libopus"
@ -1285,6 +1287,7 @@ cp -r $QT_PREFIX_DIR/plugins/imageformats \
$QT_PREFIX_DIR/plugins/iconengines \ $QT_PREFIX_DIR/plugins/iconengines \
$QTOX_PREFIX_DIR $QTOX_PREFIX_DIR
cp {$OPENSSL_PREFIX_DIR,$SQLCIPHER_PREFIX_DIR,$FFMPEG_PREFIX_DIR,$OPENAL_PREFIX_DIR,$QRENCODE_PREFIX_DIR,$EXIF_PREFIX_DIR,$OPUS_PREFIX_DIR,$SODIUM_PREFIX_DIR,$VPX_PREFIX_DIR,$TOXCORE_PREFIX_DIR}/bin/*.dll $QTOX_PREFIX_DIR cp {$OPENSSL_PREFIX_DIR,$SQLCIPHER_PREFIX_DIR,$FFMPEG_PREFIX_DIR,$OPENAL_PREFIX_DIR,$QRENCODE_PREFIX_DIR,$EXIF_PREFIX_DIR,$OPUS_PREFIX_DIR,$SODIUM_PREFIX_DIR,$VPX_PREFIX_DIR,$TOXCORE_PREFIX_DIR}/bin/*.dll $QTOX_PREFIX_DIR
cp "$SNORE_PREFIX_DIR/bin/libsnore-qt5.dll" $QTOX_PREFIX_DIR cp "$SNORE_PREFIX_DIR/bin/libsnore-qt5.dll" $QTOX_PREFIX_DIR
mkdir -p "$QTOX_PREFIX_DIR/libsnore-qt5" mkdir -p "$QTOX_PREFIX_DIR/libsnore-qt5"
cp "$SNORE_PREFIX_DIR/lib/plugins/libsnore-qt5/libsnore_backend_windowstoast.dll" "$QTOX_PREFIX_DIR/libsnore-qt5" cp "$SNORE_PREFIX_DIR/lib/plugins/libsnore-qt5/libsnore_backend_windowstoast.dll" "$QTOX_PREFIX_DIR/libsnore-qt5"
@ -1304,7 +1307,7 @@ then
fi fi
winecfg winecfg
# dll checks # qtox.exe dll checks (32-bit on i686, 64-bit on x86_64)
python3 $MINGW_LDD_PREFIX_DIR/bin/mingw-ldd.py $QTOX_PREFIX_DIR/qtox.exe --dll-lookup-dirs $QTOX_PREFIX_DIR ~/.wine/drive_c/windows/system32 > /tmp/$ARCH-qtox-ldd python3 $MINGW_LDD_PREFIX_DIR/bin/mingw-ldd.py $QTOX_PREFIX_DIR/qtox.exe --dll-lookup-dirs $QTOX_PREFIX_DIR ~/.wine/drive_c/windows/system32 > /tmp/$ARCH-qtox-ldd
find "$QTOX_PREFIX_DIR" -name '*.dll' > /tmp/$ARCH-qtox-dll-find find "$QTOX_PREFIX_DIR" -name '*.dll' > /tmp/$ARCH-qtox-dll-find
# dlls loded at run time that don't showup as a link time dependency # dlls loded at run time that don't showup as a link time dependency
@ -1346,6 +1349,26 @@ do
done < /tmp/$ARCH-qtox-dll-find done < /tmp/$ARCH-qtox-dll-find
# SnoreToast.exe dll checks (always 32-bit)
if [[ "$ARCH" == "i686" ]]
then
SNORETOAST_WINE_DLLS=/root/.wine/drive_c/windows/system32
elif [[ "$ARCH" == "x86_64" ]]
then
SNORETOAST_WINE_DLLS=/root/.wine/drive_c/windows/syswow64
fi
python3 $MINGW_LDD_PREFIX_DIR/bin/mingw-ldd.py $QTOX_PREFIX_DIR/SnoreToast.exe --dll-lookup-dirs $SNORETOAST_WINE_DLLS > /tmp/$ARCH-SnoreToast-ldd
# Check that all dlls are in place
if grep 'not found' /tmp/$ARCH-SnoreToast-ldd
then
cat /tmp/$ARCH-SnoreToast-ldd
echo "Error: Missing some dlls."
exit 1
fi
# Run tests (only on Travis) # Run tests (only on Travis)
set +u set +u
if [[ -n "$TRAVIS_CI_STAGE" ]] if [[ -n "$TRAVIS_CI_STAGE" ]]