Skip to content

Commit be46b57

Browse files
committed
Add script to build hyperion.NG
1 parent 17ec868 commit be46b57

File tree

2 files changed

+117
-0
lines changed

2 files changed

+117
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@ node_modules/
33
dist/
44
.enyocache
55
hyperion/
6+
hyperion.ng/
67
**/*.ipk

build_hyperion_ng.sh

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
#!/bin/sh
2+
# Usage:
3+
# TOOLCHAIN_DIR=<path_to_webos_buildroot_toolchain> ./build_hyperion_ng.sh
4+
5+
HYPERION_NG_REPO="${HYPERION_NG_REPO:-https://github.com/tuxuser/hyperion.ng}"
6+
HYPERION_NG_BRANCH="${HYPERION_NG_BRANCH:-tmp/webos/lil_patches}"
7+
8+
# Toolchain params - No changes needed below this line
9+
TOOLCHAIN_DIR=${TOOLCHAIN_DIR:-$HOME/arm-webos-linux-gnueabi_sdk-buildroot}
10+
TOOLCHAIN_ENV_FILE="${TOOLCHAIN_DIR}/environment-setup"
11+
TOOLCHAIN_CMAKE_FILE="${TOOLCHAIN_DIR}/share/buildroot/toolchainfile.cmake"
12+
13+
EXEC_FILE=`readlink -f $0`
14+
EXEC_DIR=`dirname ${EXEC_FILE}`
15+
# Dir to copy hyperion.ng build artifacts to
16+
TARGET_DIR="${EXEC_DIR}/hyperion"
17+
18+
HYPERION_NG_DIR="${EXEC_DIR}/hyperion.ng"
19+
BUILD_DIR_NATIVE="${HYPERION_NG_DIR}/build-x86x64"
20+
BUILD_DIR_CROSS="${HYPERION_NG_DIR}/build-cross"
21+
22+
DEPENDENCIES="libpng16.so.16 libjpeg.so.8 libcrypto.so.1.1 libz.so.1 libssl.so.1.1 libQt5Sql.so.5.15.2 libpcre2-16.so.0 libQt5Gui.so.5 libQt5Network.so.5 libQt5Widgets.so.5 libk5crypto.so.3 libatomic.so.1 libQt5Core.so.5 libkrb5support.so.0 libcom_err.so.3 libstdc++.so.6 libkrb5.so.3 libQt5Sql.so.5 libgssapi_krb5.so.2 libQt5SerialPort.so.5 libQt5Sql.so.5.15 libusb-1.0.so.0"
23+
24+
if [ ! -d $HYPERION_NG_DIR ]
25+
then
26+
echo ":: Cloning hyperion.ng from repo '$HYPERION_NG_REPO', branch: '$HYPERION_NG_BRANCH'"
27+
git clone --recursive --branch $HYPERION_NG_BRANCH $HYPERION_NG_REPO $HYPERION_NG_DIR || { echo "[-] Cloning git repo failed"; exit 1; }
28+
fi
29+
30+
# Native build to have flatc compiler
31+
if [ ! -d ${BUILD_DIR_NATIVE} ]
32+
then
33+
mkdir ${BUILD_DIR_NATIVE}
34+
fi
35+
36+
pushd ${BUILD_DIR_NATIVE}
37+
cmake .. \
38+
-DCMAKE_BUILD_TYPE=Release \
39+
-DENABLE_FLATBUF_SERVER=OFF \
40+
-DENABLE_DISPMANX=OFF \
41+
-DENABLE_FB=OFF \
42+
-DENABLE_V4L2=OFF \
43+
-DENABLE_X11=OFF \
44+
-DENABLE_XCB=OFF \
45+
-DENABLE_BOBLIGHT_SERVER=OFF \
46+
-DENABLE_CEC=OFF \
47+
-DENABLE_DEV_NETWORK=OFF \
48+
-DENABLE_DEV_SERIAL=OFF \
49+
-DENABLE_DEV_TINKERFORGE=OFF \
50+
-DENABLE_DEV_USB_HID=OFF \
51+
-DENABLE_AVAHI=OFF \
52+
-DENABLE_EFFECTENGINE=OFF \
53+
-DENABLE_REMOTE_CTL=OFF \
54+
-Wno-dev || { echo "[-] Native build -CONFIG- failed"; exit 1; }
55+
56+
make -j9 || { echo "[-] Native build -MAKE- failed"; exit 1; }
57+
popd
58+
59+
# Target cross build
60+
# source $WEBOS_ENV_FILE
61+
62+
if [ ! -d ${BUILD_DIR_CROSS} ]
63+
then
64+
mkdir ${BUILD_DIR_CROSS}
65+
fi
66+
67+
pushd ${BUILD_DIR_CROSS}
68+
cmake .. \
69+
-DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_CMAKE_FILE} \
70+
-DCMAKE_BUILD_TYPE=Debug \
71+
-DPLATFORM=rpi \
72+
-DHYPERION_LIGHT=ON \
73+
-DENABLE_QT=OFF \
74+
-DENABLE_EFFECTENGINE=OFF \
75+
-DENABLE_JSONCHECKS=OFF \
76+
-DENABLE_DEV_SERIAL=ON \
77+
-DENABLE_DEV_USB_HID=ON \
78+
-DENABLE_DEV_WS281XPWM=OFF \
79+
-DENABLE_DEV_TINKERFORGE=ON \
80+
-DENABLE_AVAHI=OFF \
81+
-DENABLE_DEPLOY_DEPENDENCIES=OFF \
82+
-DENABLE_BOBLIGHT_SERVER=ON \
83+
-DENABLE_FLATBUF_SERVER=ON \
84+
-DENABLE_PROTOBUF_SERVER=OFF \
85+
-DENABLE_FORWARDER=ON \
86+
-DENABLE_FLATBUF_CONNECT=ON \
87+
-DIMPORT_FLATC=${BUILD_DIR_NATIVE}/flatc_export.cmake || { echo "[-] Cross build -CONFIG- failed"; exit 1; }
88+
89+
make -j9 || { echo "[-] Native build -MAKE- failed"; exit 1; }
90+
popd
91+
92+
if [ -d $TARGET_DIR ]
93+
then
94+
echo ":: Empyting target build artifacts dir"
95+
rm -rf $TARGET_DIR/*
96+
else
97+
echo ":: Creating build artifacts dir"
98+
mkdir $TARGET_DIR
99+
fi
100+
101+
echo ":: Copying build artifacts"
102+
cp -ra ${BUILD_DIR_CROSS}/bin/* ${TARGET_DIR}/
103+
104+
echo ":: Copying dependencies from toolchain sysroot"
105+
for fname in ${DEPENDENCIES}
106+
do
107+
find ${TOOLCHAIN_DIR}/arm-webos-linux-gnueabi/sysroot/ -name $fname -exec cp {} ${TARGET_DIR}/ \;
108+
done
109+
110+
mkdir -p ${TARGET_DIR}/sqldrivers
111+
mkdir -p ${TARGET_DIR}/imageformats
112+
cp ${TOOLCHAIN_DIR}/arm-webos-linux-gnueabi/sysroot/usr/lib/qt/plugins/sqldrivers/libqsqlite.so ${TARGET_DIR}/sqldrivers/
113+
cp ${TOOLCHAIN_DIR}/arm-webos-linux-gnueabi/sysroot/usr/lib/qt/plugins/imageformats/libqico.so ${TARGET_DIR}/imageformats/
114+
cp ${TOOLCHAIN_DIR}/arm-webos-linux-gnueabi/sysroot/usr/lib/qt/plugins/imageformats/libqjpeg.so ${TARGET_DIR}/imageformats/
115+
116+
echo "[+] Success"

0 commit comments

Comments
 (0)