forked from hso-esk/opcua-server
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathopcua-build-binaries.sh
executable file
·122 lines (108 loc) · 2.25 KB
/
opcua-build-binaries.sh
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#! /bin/bash -x
## Internal variables
MIN_ARGS=6
BUILD_TYPES=("release","debug")
ARCHS=("arm","x86-amd64")
PROC_COUNT="$(cat /proc/cpuinfo | awk '/^processor/{print $3}' | wc -l)"
PROC_COUNT=$((PROC_COUNT + 1))
## Internal functions
usage () {
echo "-t | --type - specifies the build type (Release | Debug)"
echo "-a | --arch - specifies the architechture for which the build will be done (arm | x86-amd64)"
echo "-b | --boost - specifies the path to boost libraries"
echo "-s | --openssl - specifies the path to openssl libraries (only for arm builds)"
echo "-d | --odbc - specifies the path to the odbc librarie (only for arm builds)"
echo "-h | --help - prints this message"
}
if [ $# -lt $MIN_ARGS ];
then
usage
exit 1
fi
while [ -n "$1" ];
do
case $1 in
-t | --type)
shift
if [[ "${BUILD_TYPES[*]}" =~ "${1,,}" ]];
then
BUILD_TYPE=$1
else
usage
exit 1
fi
;;
-a | --arch)
shift
if [[ "${ARCHS[*]}" =~ "${1,,}" ]];
then
if [ "$1" = "arm" ];
then
ARCH="arm"
TOOLCHAIN="arm-linux-toolchain.cmake"
ARM_FLAG=1
else
ARCH="x86-amd64"
TOOLCHAIN="x86-amd64-linux-toolchain.cmake"
ARM_FLAG=0
fi
else
usage
exit 1
fi
;;
-b | --boost)
shift
if [ -n "$1" ];
then
BOOST_ROOT=$1
else
usage
exit 1
fi
;;
-s | --openssl)
shift
if [ -n "$1" ];
then
OPENSSL_ROOT=$1
else
usage
exit 1
fi
;;
-d | --odbc)
shift
if [ -n "$1" ];
then
ODBC_ROOT=$1
else
usage
exit 1
fi
;;
-h | --help)
usage
exit 0
;;
esac
shift
done
# create the build directory
if [ -d "asneg/build-${ARCH,,}-${BUILD_TYPE,,}" ];
then
rm -rf asneg/build-${ARCH,,}-${BUILD_TYPE,,}
mkdir -p asneg/build-${ARCH,,}-${BUILD_TYPE,,}
else
mkdir -p asneg/build-${ARCH,,}-${BUILD_TYPE,,}
fi
cd asneg/build-${ARCH,,}-${BUILD_TYPE,,}
#build
if [ $ARM_FLAG -eq 0 ];
then
OPENSSL_ROOT="/usr/local/ssl"
else
sed -i "28s/.*/SET(ENV{LDFLAGS} \"\$ENV{LDFLAGS} -L$ODBC_ROOT\")/" $(pwd)/../../$TOOLCHAIN
fi
cmake -DOPENSSL_ROOT_DIR=$OPENSSL_ROOT -DOPENSSL_LIBRARIES=${OPENSSL_ROOT}/lib -DBOOST_ROOT=$BOOST_ROOT -DCMAKE_TOOLCHAIN_FILE=../../$TOOLCHAIN -DCMAKE_BUILD_TYPE=${BUILD_TYPE^^} ../src
make --jobs=$PROC_COUNT