blob: d65588ffcdb4cb30c3f4a130339864de30f4434d [file] [log] [blame]
agsantos66b9adb2020-06-23 10:40:48 -04001#! /bin/bash
2# Build the plugin for the project
3if [ -z $DAEMON ]; then
4 DAEMON="./../../daemon"
5 echo "DAEMON not provided, building for ${DAEMON}"
6fi
7
8PLUGIN_NAME="foregroundsegmentation"
9JPL_FILE_NAME=${PLUGIN_NAME}".jpl"
10SO_FILE_NAME="lib"${PLUGIN_NAME}".so"
11DAEMON_SRC="${DAEMON}/src"
12CONTRIB_PATH="${DAEMON}/contrib"
13DESTINATION_PATH="./../build/"
14PLUGINS_LIB="../lib"
15LIBS_DIR="/home/${USER}/Libs"
16
17
18CONTRIB_PLATFORM_CURT=x86_64
19CONTRIB_PLATFORM=${CONTRIB_PLATFORM_CURT}-linux-gnu
20
21mkdir -p lib/${CONTRIB_PLATFORM_CURT}
22mkdir -p ${DESTINATION_PATH}/${CONTRIB_PLATFORM}/jpl
23
24# Compile
25clang++ -std=c++14 -shared -fPIC \
26-Wl,-Bsymbolic,-rpath,"\${ORIGIN}" \
27-Wall -Wextra \
28-Wno-unused-variable \
29-Wno-unused-function \
30-Wno-unused-parameter \
31-I"." \
32-I${DAEMON_SRC} \
33-I"${CONTRIB_PATH}/${CONTRIB_PLATFORM}/include" \
34-I"${CONTRIB_PATH}/${CONTRIB_PLATFORM}/include/opencv4" \
35-I${LIBS_DIR}/_tensorflow_cc/include \
36-I${LIBS_DIR}/_tensorflow_cc/include/third_party/eigen3 \
37-I${PLUGINS_LIB} \
38main.cpp \
39videoSubscriber.cpp \
40pluginProcessor.cpp \
41pluginMediaHandler.cpp \
42TFInference.cpp \
43pluginInference.cpp \
44pluginParameters.cpp \
45-L${CONTRIB_PATH}/${CONTRIB_PLATFORM}/lib/ \
46-L${CONTRIB_PATH}/${CONTRIB_PLATFORM}/lib/opencv4/3rdparty/ \
47-L${LIBS_DIR}/_tensorflow_cc/lib/${CONTRIB_PLATFORM}-gpu61/ \
48-lswscale \
49-lavutil \
50-lopencv_imgcodecs \
51-lopencv_imgproc \
52-lopencv_core \
53-ltensorflow_cc \
54-lpng \
55-o lib/${CONTRIB_PLATFORM_CURT}/${SO_FILE_NAME}
56# (above) Always put opencv_core after all other opencv libs
57# (above) Always put avutil after all other ffmpeg libs
58# (above) Always put png after all other libs
59
60cp ${LIBS_DIR}/_tensorflow_cc/lib/${CONTRIB_PLATFORM}-gpu61/libtensorflow_cc.so lib/$CONTRIB_PLATFORM_CURT/libtensorflow_cc.so.2
61cp /usr/lib/${CONTRIB_PLATFORM}/libswscale.so.4 lib/$CONTRIB_PLATFORM_CURT
62cp /usr/lib/${CONTRIB_PLATFORM}/libavutil.so.55 lib/$CONTRIB_PLATFORM_CURT
63cp /usr/lib/${CONTRIB_PLATFORM}/libpng16.so.16 lib/$CONTRIB_PLATFORM_CURT
64
65zip -r ${JPL_FILE_NAME} data manifest.json lib
66mv ${JPL_FILE_NAME} ${DESTINATION_PATH}/${CONTRIB_PLATFORM}/jpl/
67
68# Cleanup
69# Remove lib after compilation
70rm -rf lib