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

85 lines
1.8 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.
#
IS_SNAP="$1"
QT_DIR=staticQt
if [ -e "$IS_SNAP"]
then
echo "build for snap"
SNAP_DEFINES="$IS_SNAP"
fi
declare -a QTLIBS
BASE_DIR=$(dirname "$(readlink -f "$0")")
QTLIBS=( libQt5Sql.a libQt5Xml.a libQt5Core.a libQt5Test.a libQt5Network.a libQt5Bootstrap.a libQt5Concurrent.a)
RELEASE_DIR=$BASE_DIR/distro
if [ -e "$PREFIX"]
then
echo "PREFIX is empty, use default install path $RELEASE_DIR"
else
echo "use PREFIX path!"
RELEASE_DIR=$PREFIX
fi
cd $BASE_DIR
git submodule update --init --recursive
make clean
find $BASE_DIR -type f -name 'Makefile' -exec rm {} \;
rm $BASE_DIR/QuasarAppLib/Makefile.QuasarApp
rm -rdf $RELEASE_DIR
cd $BASE_DIR/qtBase
for var in "${QTLIBS[@]}"
do
if [ -e "$BASE_DIR/$QT_DIR/lib/$var" ]
then
echo "$var - ok"
else
echo "$var - not exits!. rebuild qt ..."
rm -rdf $BASE_DIR/$QT_DIR
git clean -xdf
./configure -confirm-license -prefix $BASE_DIR/$QT_DIR -release -optimize-size -static -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 ..
rm -rdf $BASE_DIR/build
export PATH=$PATH:$BASE_DIR/$QT_DIR
$BASE_DIR/$QT_DIR/bin/qmake QMAKE_LFLAGS+="-static -static-libgcc -static-libstdc++" $BASE_DIR/CQtDeployer.pro DEFINES+="$SNAP_DEFINES"
make -j$(nproc)
if [ $? -eq 0 ]
then
echo ""
echo "Build is successfully completed!"
else
echo ""
echo "Build is failed!" >&2
exit 1
fi
mkdir -p $RELEASE_DIR
cp $BASE_DIR/build/release/cqtdeployer $RELEASE_DIR/
strip $RELEASE_DIR/*