#!/bin/bash declare -a QTLIBS BASE_DIR=$(dirname "$(readlink -f "$0")") QTLIBS=( libQt5Sql.so libQt5Xml.so libQt5Core.so libQt5Test.so libQt5Network.so libQt5Concurrent.so) RELEASE_DIR=$BASE_DIR/distro TEMP_INSTALL_DIR=$PWD/tempInstall CQDEPLOYER_DIR=$BASE_DIR/build/release QUASARAPP_DIR=$BASE_DIR/QuasarAppLib/build/release if [ -e "$PREFIX"] then echo "PREFIX is empty, use default install path $RELEASE_DIR" else echo "use PREFIX path!" RELEASE_DIR=$PREFIX fi export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TEMP_INSTALL_DIR cd $BASE_DIR make clean find $BASE_DIR -type f -name 'Makefile' -exec rm {} \; rm $BASE_DIR/QuasarAppLib/Makefile.QuasarApp rm -rdf $RELEASE_DIR if [ -e "$1" ] then echo "use qmake from params!" QMAKE=$1 else echo "use qmake from build!" QMAKE=$BASE_DIR/sharedQt/bin/qmake cd $BASE_DIR/qtBase for var in "${QTLIBS[@]}" do if [ -e "$BASE_DIR/sharedQt/lib/$var" ] then echo "$var - ok" else echo "$var - not exits!. rebuild qt ..." rm -rdf $BASE_DIR/sharedQt git clean -xdf ./configure -confirm-license -prefix $BASE_DIR/sharedQt -release -shared -no-opengl -no-openssl -opensource -nomake tests -nomake examples -no-gui -no-widgets -no-dbus -no-accessibility make install -j$(nproc) break fi done cd .. export PATH=$PATH:$BASE_DIR/sharedQt fi $QMAKE $BASE_DIR/CQtDeployer.pro PREFIX=$TEMP_INSTALL_DIR make -j$(nproc) if [ $? -eq 0 ] then echo "" echo "Build is successfully completed!" else echo "" echo "Build is failed!" >&2 exit 1; fi make install -j$(nproc) strip $RELEASE_DIR/* chmod +x $TEMP_INSTALL_DIR/cqtdeployer $TEMP_INSTALL_DIR/cqtdeployer -targetDir $RELEASE_DIR -bin $CQDEPLOYER_DIR -libDir $QUASARAPP_DIR -qmake $QMAKE if [ -e "$1" ] then echo "" echo "deploy done (shared mode with custom qmake)" else cd $RELEASE_DIR tar -czvf $RELEASE_DIR/cqtdeployer.tar.gz ./* cd $BASE_DIR rm $TEMP_INSTALL_DIR -rdf echo "" echo "deploy done (shared mode with own qmake)" exit 0 fi