build-system/MXE: build with more up to date MXE tools.

- use hidapi grantlee and mdbtools from MXE
- update MXE version to use QT 5.15, and pull in libzstd and  CMake 3.17.3
- fix linking of winmm on windows build with new mxe
- add some instructions on building the container
- add some new dependancies from QT 5.15 to the packaging
- add a patch to MXE to Build qtconnectivity with native-win32-bluetooth

[Dirk Hohndel: small refactor]

Signed-off-by: Paul Buxton <paulbuxton.mail@googlemail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Paul Buxton 2020-05-30 12:21:22 +01:00 committed by Dirk Hohndel
parent edc1499e91
commit a753845d5a
12 changed files with 118 additions and 90 deletions

View file

@ -138,41 +138,6 @@ else
touch Release
fi
# grantlee
cd "$BUILDDIR"
if [[ ! -d grantlee || -f build.grantlee ]] ; then
rm -f build.grantlee
mkdir -p grantlee
cd grantlee
"$MXEBUILDTYPE"-cmake \
-DCMAKE_BUILD_TYPE=$RELEASE \
-DBUILD_TESTS=OFF \
"$BASEDIR"/grantlee
make $JOBS
make install
fi
# hidapi for libdivecomputer (if available)
if [[ -d "$BASEDIR"/hidapi ]] ; then
cd "$BUILDDIR"
if [[ ! -d hidapi || -f build.hidapi ]] ; then
rm -f build.hidapi
mkdir -p hidapi
pushd "$BASEDIR"/hidapi
bash ./bootstrap
popd
cd hidapi
"$BASEDIR"/hidapi/configure \
CC="$MXEBUILDTYPE"-gcc \
--host="$MXEBUILDTYPE" \
--prefix="$BASEDIR"/"$MXEDIR"/usr/"$MXEBUILDTYPE"
make $JOBS
make install
fi
fi
# libdivecomputer
@ -284,7 +249,8 @@ done
# for some reason we aren't installing Qt5Xml.dll and Qt5Location.dll
# I need to figure out why and fix that, but for now just manually copy that as well
EXTRA_MANUAL_DEPENDENCIES="$BASEDIR/"$MXEDIR"/usr/"$MXEBUILDTYPE"/qt5/bin/Qt5Xml$DLL_SUFFIX.dll \
$BASEDIR/"$MXEDIR"/usr/"$MXEBUILDTYPE"/qt5/bin/Qt5Location$DLL_SUFFIX.dll"
$BASEDIR/"$MXEDIR"/usr/"$MXEBUILDTYPE"/qt5/bin/Qt5Location$DLL_SUFFIX.dll \
$BASEDIR/"$MXEDIR"/usr/"$MXEBUILDTYPE"/qt5/bin/Qt5QmlWorkerScript$DLL_SUFFIX.dll"
for f in $EXTRA_MANUAL_DEPENDENCIES
do

View file

@ -142,32 +142,6 @@ export PKG_CONFIG_PATH_i686_w64_mingw32_shared="$BASEDIR/mxe/usr/i686-w64-mingw3
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH_i686_w64_mingw32_static":"$PKG_CONFIG_PATH_i686_w64_mingw32_shared"
#
# mdbtools
# build from sources. If build fails, fallback to prebuilt mxe binaries.
#
echo -e "$BLUE---> Building mdbtools ... $DEFAULT "
mkdir -p --verbose "$BASEDIR"/mxe/usr/i686-w64-mingw32.static/include
mkdir -p --verbose "$BASEDIR"/mxe/usr/i686-w64-mingw32.static/lib
cd "$BUILDDIR"
[[ -d mdbtools ]] && rm -rf mdbtools
mkdir -p mdbtools
cd mdbtools
if [ ! -f "$BASEDIR"/mdbtools/configure ] ; then
( cd "$BASEDIR"/mdbtools
autoreconf -v -f -i )
fi
"$BASEDIR"/mdbtools/configure CC=i686-w64-mingw32.static-gcc \
--host=i686-w64-mingw32.static \
--prefix="$BASEDIR"/mxe/usr/i686-w64-mingw32.static \
--enable-shared=no \
--disable-man \
--disable-gmdb2
# hack to make mdbtools build outsource
ln -vs "$BUILDDIR"/mdbtools/include/mdbver.h "$BASEDIR"/mdbtools/include/mdbver.h
make $JOBS >/dev/null && make install || \
echo -e "$RED---> Building mdbtools failed ...$LIGHT_GRAY Trying to build with precompiled mxe binaries$DEFAULT"
# Subsurface
#
if [ "$AUTO" = "false" ]; then