1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
#!/bin/bash
# here we expected that the particular version of qmake, you want to use, is found on PATH
# so if you want to use something different then default, make sure you adjust path before calling this script
set -xe
BUILD_TYPE=${1}
CLEAN=${2}
TIDY_LIB_DIR=${3}
CDIR=`pwd`
function error_exit {
echo "$0: ***********error_exit***********"
echo "***********" 1>&2
echo "*********** Failed: $1" 1>&2
echo "***********" 1>&2
cd ${CDIR}
exit 1
}
if [ ! -f src/main.cpp ]; then
echo "$0: You seem to be in wrong directory. script MUST be run from the project directory."
exit 1
fi
if [ -z "${BUILD_TYPE}" ]; then
BUILD_TYPE=debug
fi
BUILD_DIR=qmake-build-${BUILD_TYPE}
if [ "${CLEAN}" == "clean" ]; then
echo "Clean build: ${BUILD_DIR}"
if [ -d "${BUILD_DIR}" ]; then
rm -rf ${BUILD_DIR}
fi
fi
if [ -z "${TIDY_LIB_DIR}" ]; then
# system default
TIDY_LIB_DIR=/usr/lib
fi
if [ ! -d "${TIDY_LIB_DIR}" ]; then
echo "TIDY_LIB_DIR (${TIDY_LIB_DIR}) is not a directory"
exit 1
fi
echo "$0: libtidy is expected in: ${TIDY_LIB_DIR}"
if [ ! -d "${BUILD_DIR}" ]; then
mkdir ${BUILD_DIR}
fi
echo "${BUILD_DIR}">_build_dir_.txt
APPDIR=appdir
if [ -d "${APPDIR}" ]; then
rm -rf ${APPDIR}/* || echo "failed to remove"
rm *.AppImage 2>/dev/null || echo "failed to remove"
fi
QMAKE_BINARY=qmake
if [ "${TIDY_LIB_DIR}" == "/usr/lib" ] ; then
# at least on ubuntu pkgconfig for "libtidy-dev" is not installed - so we provide default
# there could be better option
# check: env PKG_CONFIG_PATH=./development/pkgconfig pkg-config --libs --cflags tidy
CDIR=`pwd`
echo export PKG_CONFIG_PATH=${CDIR}/development/pkgconfig
export PKG_CONFIG_PATH=${CDIR}/development/pkgconfig
elif [ -d ${TIDY_LIB_DIR}/pkgconfig ] ; then
echo export PKG_CONFIG_PATH=${TIDY_LIB_DIR}/pkgconfig
export PKG_CONFIG_PATH=${TIDY_LIB_DIR}/pkgconfig
fi
echo ${QMAKE_BINARY} CONFIG+=${BUILD_TYPE} PREFIX=appdir/usr QMAKE_RPATHDIR+=${TIDY_LIB_DIR} || error_exit "$0: qmake"
${QMAKE_BINARY} CONFIG+=${BUILD_TYPE} PREFIX=appdir/usr QMAKE_RPATHDIR+=${TIDY_LIB_DIR} || error_exit "$0: qmake"
make -j$(nproc) || error_exit "$0: make"
make -j$(nproc) install || error_exit "$0: make install"
cp changelog.txt debian/changelog
|