MXE windows build script mxe-based-build.sh updates

Updates mainly in the comments of the MXE build script:
- File system layout: different proposal
- Hint to not use MXE current version from git
- MXE build JOBS setting to (very) safe value of 1
- export CXXFLAGS=-std=c++11 added for marble build
This commit is contained in:
Stefan Fuchs 2017-01-29 21:45:02 +01:00 committed by Dirk Hohndel
parent 0e57033042
commit 3b67bc25a3

View file

@ -3,17 +3,20 @@
# build Subsurface for Win32 # build Subsurface for Win32
# #
# this file assumes that you have installed MXE on your system # this file assumes that you have installed MXE on your system
# and installed a number of dependencies as well # and installed a number of dependencies as well. Latest MXE
# version from git may not always work for Qt5 and Subsurface.
# Try to select an older release version like build-2016-10-12.
# #
# cd ~/src/win # cd ~/src
# git clone https://github.com/mxe/mxe # git clone --branch build-2016-10-12 https://github.com/mxe/mxe
# cd mxe # cd mxe
# #
# now create a file settings.mk # now create a file settings.mk
#--- #---
# # This variable controls the number of compilation processes # # This variable controls the number of compilation processes
# # within one package ("intra-package parallelism"). # # within one package ("intra-package parallelism").
# JOBS := 12 # # Set to higher value if you have a powerful machine.
# JOBS := 1
# #
# # This variable controls the targets that will build. # # This variable controls the targets that will build.
# MXE_TARGETS := i686-w64-mingw32.shared # MXE_TARGETS := i686-w64-mingw32.shared
@ -27,30 +30,29 @@
# #
# After quite a while (depending on your machine anywhere from 15-20 # After quite a while (depending on your machine anywhere from 15-20
# minutes to several hours) you should have a working MXE install in # minutes to several hours) you should have a working MXE install in
# ~/src/win/mxe # ~/src/mxe
# #
# Now this script will come in: # Now this script will come in:
# #
# This makes some assumption about the filesystem layout based # This makes some assumption about the filesystem layout so you
# on the way things are setup on my system so I can build Ubuntu PPA, # can build linux and windows build out of the same sources
# OBS and Windows out of the same sources.
# Something like this: # Something like this:
# #
# ~/src/win/mxe <- current MXE git with Qt5, automake (see above) # ~/src/mxe <- MXE git with Qt5, automake (see above)
# /win/grantlee <- Grantlee 5.0.0 sources from git # /grantlee <- Grantlee 5.0.0 sources from git
# /win/libssh2 <- from git - v1.6 seems to work # /libssh2 <- from git - v1.6 seems to work
# /win/libcurl <- from git - 7.42.1 seems to work # /libcurl <- from git - 7.42.1 seems to work - rename folder!
# /win/subsurface <- current subsurface git # /subsurface <- current subsurface git
# /win/libdivecomputer <- appropriate libdc/Subsurface-branch branch # /libdivecomputer <- appropriate libdc/Subsurface-branch branch
# /win/marble-source <- appropriate marble/Subsurface-branch branch # /marble-source <- appropriate marble/Subsurface-branch branch
# /win/libgit2 <- libgit2 0.23.1 or similar # /libgit2 <- libgit2 0.23.1 or similar
# #
# ~/src/win/win32 <- build directory # ~/src/win32 <- build directory
# #
# then start this script from ~/src/win/win32 # then start this script from ~/src/win32
# #
# cd ~/src/win/win32 # cd ~/src/win32
# bash ../../subsurface/packaging/windows/mxe-based-build.sh installer # bash ../subsurface/packaging/windows/mxe-based-build.sh installer
# #
# this should create the latest daily installer # this should create the latest daily installer
# #
@ -60,9 +62,9 @@
# #
# so if you update one of the other libs do # so if you update one of the other libs do
# #
# cd ~/src/win/win32 # cd ~/src/win32
# touch build.<component> # touch build.<component>
# bash ../../subsurface/packaging/windows/mxe-based-build.sh installer # bash ../subsurface/packaging/windows/mxe-based-build.sh installer
# #
# and that component gets rebuilt as well. E.g. # and that component gets rebuilt as well. E.g.
# touch build.libdivecomputer # touch build.libdivecomputer
@ -95,6 +97,7 @@ fi
echo "Building in $BUILDDIR ..." echo "Building in $BUILDDIR ..."
export PATH="$BASEDIR"/mxe/usr/bin:$PATH:"$BASEDIR"/mxe/usr/i686-w64-mingw32.shared/qt5/bin/ export PATH="$BASEDIR"/mxe/usr/bin:$PATH:"$BASEDIR"/mxe/usr/i686-w64-mingw32.shared/qt5/bin/
export CXXFLAGS=-std=c++11
if [[ "$1" == "debug" ]] ; then if [[ "$1" == "debug" ]] ; then
RELEASE="Debug" RELEASE="Debug"
@ -199,7 +202,7 @@ fi
cd "$BUILDDIR" cd "$BUILDDIR"
if [[ ! -d libdivecomputer || -f build.libdivecomputer ]] ; then if [[ ! -d libdivecomputer || -f build.libdivecomputer ]] ; then
rm build.libdivecomputer rm -f build.libdivecomputer
cd "$BASEDIR"/libdivecomputer cd "$BASEDIR"/libdivecomputer
git pull git pull
cd "$BUILDDIR" cd "$BUILDDIR"
@ -225,7 +228,7 @@ fi
cd "$BUILDDIR" cd "$BUILDDIR"
if [[ ! -d marble || -f build.marble ]] ; then if [[ ! -d marble || -f build.marble ]] ; then
rm build.marble rm -f build.marble
mkdir -p marble mkdir -p marble
cd marble cd marble
cmake -DCMAKE_TOOLCHAIN_FILE="$BASEDIR"/mxe/usr/i686-w64-mingw32.shared/share/cmake/mxe-conf.cmake \ cmake -DCMAKE_TOOLCHAIN_FILE="$BASEDIR"/mxe/usr/i686-w64-mingw32.shared/share/cmake/mxe-conf.cmake \