SOURCE CODE

All source code is cloned / pulled from git, and installed into subdirectories in ~/Project, for example:

~/Project/ContactManager
~/Project/EasyNotepad

BUILDING

These are built with QtCreator, generating MSVC32, MSVC64 or MinGW32 as release, so the default folder for the output is something like:

~/Project/build-ContactManager-Desktop_Qt_5_10_1_MinGW_32bit_Release/release
~/Project/build-ContactManager-Desktop_Qt_5_10_1_MSVC32_32bit_Release/release

DEPLOYING

A Bash script is used to generate the deployed files.  This script is run from the git bash shell (accessible through the start menu).

~/Project/bin/DeployMinGW
~/Project/bin/DeployMSVC32

The script creates an output / deployment folder, for example:

~/Project/Qt_5_10_1_MinGW_32bit-Deploy
~/Project/Qt_5_10_1_MSVC2015_32bit-Deploy

and it copies each of the executables from the release folder to a bin subdirectory.  It then runs windeployqt, which copies all of the required QT DLLs; and then transfers additional DLLs for SSL and the MinGW or MSVC environment from:

~/Project/Qt_5_10_1_MinGW_32bit/bin
~/Project/Qt_5_10_1_MSVC2015_32bit/bin and vcredist

BUILDING INSTALL BUNDLE

VCINSTALLDIR has some meaning to windeployqt


Deploy Script
#!/usr/bin/bash
 
#
# DeployMSVC
#
# This script copies the required files that have been built
# with QtCreator to a Deploy folder, then adds all of the
# required support files.
#
 
#
# It expects the support files to be in $REL/bin
#
 
APPS="ContactManager ParseWeb EasyNotepad"
WORK="/c/Users/steve/Project"
QTBASE="/c/Qt/5.10.1"
WINDEPLOY="$QTBASE/msvc2015/bin/windeployqt.exe"
REL="Qt_5_10_1_MSVC2015_32bit"
#VCINSTALLDIR=
 
rm -rf $WORK/$Rel-Deploy
 
mkdir -p $WORK/$REL-Deploy
cd $WORK/$REL-Deploy
mkdir -p bin
cd bin
 
for APP in $APPS; do
  cp $WORK/build-$APP-Desktop_$REL-Release/release/$APP.exe .
  $WINDEPLOY $APP.exe
done
 
cp $WORK/$REL/bin/* .
 
cd ..
mkdir -p vcredist
cd vcredist
 
cp $WORK/$REL/vcredist/* .