Subversion Repositories tpanel

Rev

Rev 469 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 469 Rev 481
Line 1... Line 1...
1
#!/bin/bash
1
#!/bin/bash
2
# errors are propagated when using the pipe to concatenate commands 
2
# errors are propagated when using the pipe to concatenate commands
3
set -o pipefail
3
set -o pipefail
4
# determine script directory
4
# determine script directory
5
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
5
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
6
ROOT_DIR="${SCRIPT_DIR}/.."
6
ROOT_DIR="${SCRIPT_DIR}/.."
7
LOG_FILE="${ROOT_DIR}/workflow.log"
7
LOG_FILE="${ROOT_DIR}/workflow.log"
-
 
8
VERSION="1.4.2"
-
 
9
RELEASE="1"
8
export QT_DIR="/opt/Qt/6.6.2/gcc_64"
10
export QT_DIR="/opt/Qt/6.6.2/gcc_64"
9
export CMAKE_PREFIX_PATH="${QT_DIR}/lib/cmake"
11
export CMAKE_PREFIX_PATH="${QT_DIR}/lib/cmake"
10
 
12
 
11
# the first parameter is the branch, that is currently being built
13
# the first parameter is the branch, that is currently being built
12
BRANCH="$1"
14
BRANCH="$1"
13
 
15
 
14
# Log the message.
16
# Log the message.
15
# parameters:
17
# parameters:
16
#    message ... the message to log
18
#    message ... the message to log
17
log() {
19
log() {
18
  local message="$1"
20
    local message="$1"
19
  local currentTime=$(date +"%y-%m-%d %H:%M:%S")
21
    local currentTime=$(date +"%y-%m-%d %H:%M:%S")
20
  echo "${currentTime}: ${message}" | tee -a ${LOG_FILE}
22
    echo "${currentTime}: ${message}" | tee -a ${LOG_FILE}
21
}
23
}
22
 
24
 
-
 
25
if [ -f "${ROOT_DIR}/.version" ]
-
 
26
then
-
 
27
    . ${ROOT_DIR}/.version
-
 
28
fi
-
 
29
 
23
CPUS=2
30
CPUS=2
24
type nproc > /dev/null 2>&1
31
type nproc > /dev/null 2>&1
25
 
32
 
26
if [ $? -eq 0 ]
33
if [ $? -eq 0 ]
27
then
34
then
Line 43... Line 50...
43
fi
50
fi
44
 
51
 
45
log "Changing to build directory"
52
log "Changing to build directory"
46
cd build
53
cd build
47
log "Building the application ..."
54
log "Building the application ..."
48
exec make -j${CPUS} >> ${LOG_FILE} 2>&1
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