Subversion Repositories tpanel

Rev

Rev 469 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
363 andreas 1
#!/bin/bash
481 andreas 2
# errors are propagated when using the pipe to concatenate commands
363 andreas 3
set -o pipefail
4
# determine script directory
5
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
6
ROOT_DIR="${SCRIPT_DIR}/.."
7
LOG_FILE="${ROOT_DIR}/workflow.log"
481 andreas 8
VERSION="1.4.2"
9
RELEASE="1"
469 andreas 10
export QT_DIR="/opt/Qt/6.6.2/gcc_64"
363 andreas 11
export CMAKE_PREFIX_PATH="${QT_DIR}/lib/cmake"
12
 
13
# the first parameter is the branch, that is currently being built
14
BRANCH="$1"
15
 
16
# Log the message.
17
# parameters:
18
#    message ... the message to log
19
log() {
481 andreas 20
    local message="$1"
21
    local currentTime=$(date +"%y-%m-%d %H:%M:%S")
22
    echo "${currentTime}: ${message}" | tee -a ${LOG_FILE}
363 andreas 23
}
24
 
481 andreas 25
if [ -f "${ROOT_DIR}/.version" ]
26
then
27
    . ${ROOT_DIR}/.version
28
fi
29
 
363 andreas 30
CPUS=2
31
type nproc > /dev/null 2>&1
32
 
33
if [ $? -eq 0 ]
34
then
35
    CPUS=`nproc`
36
fi
37
 
38
rm -rf "${ROOT_DIR}/build" > /dev/null 2>&1
39
mkdir "${ROOT_DIR}/build"
40
 
41
log "Changing to directory $ROOT_DIR"
42
cd ${ROOT_DIR}
43
log "Creating the Makefile"
44
cmake -B build -S . >> ${LOG_FILE} 2>&1
45
 
46
if [ $? -ne 0 ]
47
then
48
    log "ERROR: Could not create Makefile!"
49
    exit 1
50
fi
51
 
52
log "Changing to build directory"
53
cd build
54
log "Building the application ..."
481 andreas 55
make -j${CPUS} >> ${LOG_FILE} 2>&1
56
 
57
if [ $? -ne 0 ]
58
then
59
    echo "Error compiling the code!"
60
    exit 1
61
fi
62
 
63
# Build a debian package
64
log "Building a debian package"
65
BASE_PATH="${ROOT_DIR}/tpanel_${VERSION}-${RELEASE}_amd64"
66
rm -rf "${BASE_PATH}"
67
mkdir -p "${BASE_PATH}/DEBIAN" >> ${LOG_FILE} 2>&1
68
mkdir -p "${BASE_PATH}/usr/bin" >> ${LOG_FILE} 2>&1
69
mkdir -p "${BASE_PATH}/usr/lib" >> ${LOG_FILE} 2>&1
70
(cd "${ROOT_DIR}/build/ftplib";tar -cf - libftp*) | (cd "${BASE_PATH}/usr/lib";tar -xf -)
71
cp "${ROOT_DIR}/build/src/tpanel" "${BASE_PATH}/usr/bin"
72
cp "/usr/local/lib/skia/libskia.so" "${BASE_PATH}/usr/lib"
73
cp "/usr/local/lib/libpjsua.so.2" "${BASE_PATH}/usr/lib"
74
cp "/usr/local/lib/libpjsip-simple.so.2" "${BASE_PATH}/usr/lib"
75
cp "/usr/local/lib/libpjsip.so.2" "${BASE_PATH}/usr/lib"
76
cp "/usr/local/lib/libpjmedia.so.2" "${BASE_PATH}/usr/lib"
77
cp "/usr/local/lib/libpj.so.2" "${BASE_PATH}/usr/lib"
78
cp "/usr/local/lib/libpjsip-ua.so.2" "${BASE_PATH}/usr/lib"
79
cp "/usr/local/lib/libpjmedia-audiodev.so.2" "${BASE_PATH}/usr/lib"
80
cp "/usr/local/lib/libpjmedia-codec.so.2" "${BASE_PATH}/usr/lib"
81
cp "/usr/local/lib/libpjnath.so.2" "${BASE_PATH}/usr/lib"
82
cp "/usr/local/lib/libpjlib-util.so.2" "${BASE_PATH}/usr/lib"
83
cp "/usr/local/lib/libsrtp.so.2" "${BASE_PATH}/usr/lib"
84
cp "/usr/local/lib/libresample.so.2" "${BASE_PATH}/usr/lib"
85
cp "/usr/local/lib/libspeex.so.2" "${BASE_PATH}/usr/lib"
86
cp "/usr/local/lib/libwebrtc.so.2" "${BASE_PATH}/usr/lib"
87
cp "/usr/local/lib/libgsmcodec.so.2" "${BASE_PATH}/usr/lib"
88
cp "/usr/local/lib/libilbccodec.so.2" "${BASE_PATH}/usr/lib"
89
cp "/usr/local/lib/libsndfile.so.1" "${BASE_PATH}/usr/lib"
90
 
91
echo "Package: tpanel" > "${BASE_PATH}/DEBIAN/control"
92
echo "Version: $VERSION" >> "${BASE_PATH}/DEBIAN/control"
93
echo "Section: misc" >> "${BASE_PATH}/DEBIAN/control"
94
echo "Priority: optional" >> "${BASE_PATH}/DEBIAN/control"
95
echo "Architecture: amd64" >> "${BASE_PATH}/DEBIAN/control"
96
echo "Depends: Qt6MultimediaWidgets,ssl,expat,uuid,Qt6Multimedia,Qt6Network,Qt6Widgets,Qt6Gui,Qt6Core,crypto,freetype,jpeg,png16,Qt6DBus,asound,FLAC,vorbis,ogg,mpg123" >> "${BASE_PATH}/DEBIAN/control"
97
echo "Summary: Emulation of AMX touch panels" >> "${BASE_PATH}/DEBIAN/control"
98
echo "License: GPLv3" >> "${BASE_PATH}/DEBIAN/control"
99
echo "Homepage: https://https://github.com/TheLord45/tpanel" >> "${BASE_PATH}/DEBIAN/control"
100
echo "Maintainer: Andreas Theofilu <andreas@theosys.at>" >> "${BASE_PATH}/DEBIAN/control"
101
echo "Description: TPanel is an emulation of some AMX G4/G5 touch panels." >> "${BASE_PATH}/DEBIAN/control"
102
echo "  The software uses internally the Skia library for drawing all objects" >> "${BASE_PATH}/DEBIAN/control"
103
echo "  and the Qt 6.x library to display the objects. TPanel is written in C++." >> "${BASE_PATH}/DEBIAN/control"
104
echo "  This makes it even on mobile platforms fast and reliable." >> "${BASE_PATH}/DEBIAN/control"
105
 
106
dpkg --build "${BASE_PATH}" >> ${LOG_FILE} 2>&1
107
 
108
if [ $? -ne 0 ]
109
then
110
    log "Error building a debian package!"
111
    exit 1
112
fi
113
 
114
log "Package tpanel_${VERSION}-${RELEASE}_amd64.deb was build successfuly"
115
exit 0