QGIS/ms-windows/mxe/build-mxe.sh
2018-02-08 13:38:27 +01:00

105 lines
2.8 KiB
Bash
Executable File

#!/bin/bash
###########################################################################
# build-mxe.sh
# ---------------------
# Date : February 2018
# Copyright : (C) 2018 by Alessandro Pasotti
# Email : elpaso at itopen dot it
###########################################################################
# #
# This program is free software; you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
# the Free Software Foundation; either version 2 of the License, or #
# (at your option) any later version. #
# #
###########################################################################
set -e
# Usage: you can pass an optional "package" command to skip the build
# and directly go to the packaging
# This script needs to be called from the main QGIS directory, the
# one which contains CMakeLists.txt
COMMAND=$1
# Location of current script
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
PYDEPLOY=${DIR}/deploy.py
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
# Configuration: change this!
# Location of mxe install dir
MXE=${HOME}/dev/mxe/
# Where the artifact will be saved
BUILD_DIR=`pwd`/build-mxe
RELEASE_DIR=`pwd`/release-mxe
# End configuration
if [[ "$COMMAND" != *"package"* ]]; then
[ -d $BUILD_DIR ] && rm -rf $BUILD_DIR
[ -d $RELEASE_DIR ] && rm -rf $RELEASE_DIR
# Make sure dirs exist
[ -d $BUILD_DIR ] || mkdir $BUILD_DIR
[ -d $RELEASE_DIR ] || mkdir $RELEASE_DIR
fi
pushd .
cd $BUILD_DIR
# Build
if [[ "$COMMAND" != *"package"* ]]; then
$MXE/usr/bin/i686-w64-mingw32.shared-cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$RELEASE_DIR \
-DENABLE_TESTS=OFF \
-DWITH_QSPATIALITE=ON \
-DWITH_APIDOC=OFF \
-DWITH_QWTPOLAR=ON \
-DWITH_ASTYLE=OFF \
-DWITH_SERVER=OFF \
-DWITH_BINDINGS=FALSE \
-DQT_LRELEASE_EXECUTABLE=$MXE/usr/i686-w64-mingw32.shared/qt5/bin/lrelease \
$ARGS
make -j16 install
fi
# Collect deps
$PYDEPLOY --build=$RELEASE_DIR --objdump=$MXE/usr/bin/i686-w64-mingw32.shared-objdump ${RELEASE_DIR}/qgis.exe
for dll in $(ls ${RELEASE_DIR}/*.dll); do \
$PYDEPLOY --build=$RELEASE_DIR --objdump=$MXE/usr/bin/i686-w64-mingw32.shared-objdump $dll; \
done
cp -r $MXE/usr/i686-w64-mingw32.shared/qt5/plugins $RELEASE_DIR/qt5
cat <<__TXT__ > ${RELEASE_DIR}/qt.conf
[Paths]
Plugins = ./qt5/plugins
__TXT__
popd
ZIP_NAME=release-`date +%Y-%m-%d-%H-%I-%S`.zip
zip -r $ZIP_NAME $RELEASE_DIR
echo "Release in $ZIP_NAME ready."