CQtDeployer/sharedBuild.sh
2019-01-26 07:54:56 +03:00

110 lines
2.3 KiB
Bash
Executable File

#!/bin/bash
#
# Copyright (C) 2018-2019 QuasarApp.
# Distributed under the lgplv3 software license, see the accompanying
# Everyone is permitted to copy and distribute verbatim copies
# of this license document, but changing it is not allowed.
#
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