#!/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."