SDK: Scripts to generate plugin's skeleton code
done:
- create plugin folder structure
- manifest.json + icon.png
- copyright header
- main.cpp
- choose number of functionalities and the api to each one of them
- create src files for each functionality (APIs skeleton .h and .cpp)
- create preferences.json
- put colors into prints and clear outputs when needed
- modify src files to set preferences code
- create pakage.json
- add helper files
- use library Cmd
- reorganize functions into classes define inherits stack
- add GNU GPL to python files
- jpl merge function
- pre and post assembles
- default options plugin build
- windows build with build-plugin.py
- add build option for windows build
- generate base CMakeLists.txt and build.sh
Change-Id: Id8eb5a97fa7a51e99a0f9215835c3d5ffea630ad
GitLab: #2
diff --git a/GreenScreen/build.sh b/GreenScreen/build.sh
index ad60269..b046871 100755
--- a/GreenScreen/build.sh
+++ b/GreenScreen/build.sh
@@ -2,7 +2,7 @@
# Build the plugin for the project
export OSTYPE
ARCH=$(arch)
-
+EXTRAPATH=''
# Flags:
# -p: number of processors to use
@@ -59,30 +59,25 @@
TF="_tensorflow_cc"
fi
echo "Building with ${TF}"
-mkdir ./data/models
-
if [[ "${TF}" = "_tensorflow_cc" ]] && [[ "${PLATFORM}" = "linux-gnu" ]]
then
if [ -z "$CUDALIBS" ]; then
- rm -r ./data/models
echo "CUDALIBS must point to CUDA 10.1!"
exit
fi
if [ -z "$CUDNN" ]; then
- rm -r ./data/models
echo "CUDNN must point to libcudnn.so 7!"
exit
fi
echo "Building for ${PROCESSOR}"
+ python3 ./../SDK/jplManipulation.py --preassemble --plugin=${PLUGIN_NAME}
+
CONTRIB_PLATFORM_CURT=${ARCH}
CONTRIB_PLATFORM=${CONTRIB_PLATFORM_CURT}-${PLATFORM}
- DESTINATION_PATH="./../build/${CONTRIB_PLATFORM}/${TF}"
- mkdir -p "lib/${CONTRIB_PLATFORM}"
- mkdir -p "${DESTINATION_PATH}"
-
+ EXTRAPATH=${TF}
# Compile
clang++ -std=c++17 -shared -fPIC \
@@ -99,6 +94,7 @@
-I"${LIBS_DIR}/${TF}/include" \
-I"${LIBS_DIR}/${TF}/include/third_party/eigen3" \
-I"${PLUGINS_LIB}" \
+ ./../lib/accel.cpp \
main.cpp \
videoSubscriber.cpp \
pluginProcessor.cpp \
@@ -117,28 +113,30 @@
-llibpng \
-lva \
-ltensorflow_cc \
- -o "lib/${CONTRIB_PLATFORM}/${SO_FILE_NAME}"
+ -o "build-local/jpl/lib/${CONTRIB_PLATFORM}/${SO_FILE_NAME}"
- cp "${TF_LIBS_DIR}/${TF}/lib/${CONTRIB_PLATFORM}-gpu61/libtensorflow_cc.so" "lib/$CONTRIB_PLATFORM/libtensorflow_cc.so.2"
- cp "${CUDALIBS}/libcudart.so" "lib/$CONTRIB_PLATFORM/libcudart.so.10.0"
- cp "${CUDNN}/libcublas.so.10" "lib/$CONTRIB_PLATFORM/libcublas.so.10.0"
- cp "${CUDALIBS}/libcufft.so.10" "lib/$CONTRIB_PLATFORM/libcufft.so.10.0"
- cp "${CUDALIBS}/libcurand.so.10" "lib/$CONTRIB_PLATFORM/libcurand.so.10.0"
- cp "${CUDALIBS}/libcusolver.so.10" "lib/$CONTRIB_PLATFORM/libcusolver.so.10.0"
- cp "${CUDALIBS}/libcusparse.so.10" "lib/$CONTRIB_PLATFORM/libcusparse.so.10.0"
- cp "${CUDNN}/libcudnn.so.7" "lib/$CONTRIB_PLATFORM"
+ cp "${TF_LIBS_DIR}/${TF}/lib/${CONTRIB_PLATFORM}-gpu61/libtensorflow_cc.so" "build-local/jpl/lib/$CONTRIB_PLATFORM/libtensorflow_cc.so.2"
+ cp "${CUDALIBS}/libcudart.so" "build-local/jpl/lib/$CONTRIB_PLATFORM/libcudart.so.10.0"
+ cp "${CUDNN}/libcublas.so.10" "build-local/jpl/lib/$CONTRIB_PLATFORM/libcublas.so.10.0"
+ cp "${CUDALIBS}/libcufft.so.10" "build-local/jpl/lib/$CONTRIB_PLATFORM/libcufft.so.10.0"
+ cp "${CUDALIBS}/libcurand.so.10" "build-local/jpl/lib/$CONTRIB_PLATFORM/libcurand.so.10.0"
+ cp "${CUDALIBS}/libcusolver.so.10" "build-local/jpl/lib/$CONTRIB_PLATFORM/libcusolver.so.10.0"
+ cp "${CUDALIBS}/libcusparse.so.10" "build-local/jpl/lib/$CONTRIB_PLATFORM/libcusparse.so.10.0"
+ cp "${CUDNN}/libcudnn.so.7" "build-local/jpl/lib/$CONTRIB_PLATFORM"
- cp ./modelsSRC/mModel-resnet50float.pb ./data/models/mModel.pb
- cp ./preferences-tfcc.json ./data/preferences.json
+ pwd
+ mkdir ./build-local/jpl/data/models
+ cp ./modelsSRC/mModel-resnet50float.pb ./build-local/jpl/data/models/mModel.pb
+ cp ./preferences-tfcc.json ./build-local/jpl/data/preferences.json
elif [ "${TF}" = "_tensorflowLite" ]
then
if [ "${PLATFORM}" = "linux-gnu" ]
then
+ python3 ./../SDK/jplManipulation.py --preassemble --plugin=${PLUGIN_NAME}
+
CONTRIB_PLATFORM_CURT=${ARCH}
CONTRIB_PLATFORM=${CONTRIB_PLATFORM_CURT}-${PLATFORM}
- DESTINATION_PATH="./../build/${CONTRIB_PLATFORM}/${TF}"
- mkdir -p "lib/${CONTRIB_PLATFORM}"
- mkdir -p "${DESTINATION_PATH}"
+ EXTRAPATH="${TF}"
# Compile
clang++ -std=c++17 -shared -fPIC \
@@ -155,6 +153,7 @@
-I"${LIBS_DIR}/${TF}/include/flatbuffers" \
-I"${LIBS_DIR}/${TF}/include" \
-I"${PLUGINS_LIB}" \
+ ./../lib/accel.cpp \
main.cpp \
videoSubscriber.cpp \
pluginProcessor.cpp \
@@ -173,14 +172,13 @@
-ltensorflowlite \
-llibpng \
-lva \
- -o "lib/${CONTRIB_PLATFORM}/${SO_FILE_NAME}"
+ -o "build-local/jpl/lib/${CONTRIB_PLATFORM}/${SO_FILE_NAME}"
- cp "${TF_LIBS_DIR}/${TF}/lib/${CONTRIB_PLATFORM}/libtensorflowlite.so" "lib/$CONTRIB_PLATFORM"
+ cp "${TF_LIBS_DIR}/${TF}/lib/${CONTRIB_PLATFORM}/libtensorflowlite.so" "build-local/jpl/lib/$CONTRIB_PLATFORM"
elif [ "${PLATFORM}" = "android" ]
then
- DESTINATION_PATH="./../build/android"
- mkdir -p "${DESTINATION_PATH}"
+ python3 ./../SDK/jplManipulation.py --preassemble --plugin=${PLUGIN_NAME} --distribution=${PLATFORM}
if [ -z "$ANDROID_NDK" ]; then
ANDROID_NDK="/home/${USER}/Android/Sdk/ndk/21.1.6352462"
@@ -198,7 +196,6 @@
buildlib() {
echo "$CURRENT_ABI"
- mkdir -p "lib/$CURRENT_ABI"
#=========================================================
# ANDROID TOOLS
@@ -241,8 +238,6 @@
else
echo "ABI NOT OK" >&2
- rm -r lib/
- rm -r ./data/models
exit 1
fi
@@ -304,6 +299,7 @@
-I"${LIBS_DIR}/${TF}/include/flatbuffers" \
-I"${LIBS_DIR}/${TF}/include" \
-I"${PLUGINS_LIB}" \
+ ./../lib/accel.cpp \
main.cpp \
videoSubscriber.cpp \
pluginProcessor.cpp \
@@ -323,9 +319,9 @@
-ltensorflowlite \
-llog -lz \
--sysroot=$ANDROID_SYSROOT \
- -o "lib/$CURRENT_ABI/${SO_FILE_NAME}"
+ -o "build-local/jpl/lib/$CURRENT_ABI/${SO_FILE_NAME}"
- cp "${TF_LIBS_DIR}/${TF}/lib/${CURRENT_ABI}/libtensorflowlite.so" "lib/$CURRENT_ABI"
+ cp "${TF_LIBS_DIR}/${TF}/lib/${CURRENT_ABI}/libtensorflowlite.so" "build-local/jpl/lib/$CURRENT_ABI"
rm cpu-features.o
}
@@ -336,16 +332,9 @@
done
fi
- cp ./modelsSRC/mobilenet_v2_deeplab_v3_256_myquant.tflite ./data/models/mModel.tflite
- cp ./preferences-tflite.json ./data/preferences.json
+ mkdir ./build-local/jpl/data/models
+ cp ./modelsSRC/mobilenet_v2_deeplab_v3_256_myquant.tflite ./build-local/jpl/data/models/mModel.tflite
+ cp ./preferences-tflite.json ./build-local/jpl/data/preferences.json
fi
-zip -r ${JPL_FILE_NAME} data manifest.json lib
-mv ${JPL_FILE_NAME} ${DESTINATION_PATH}/
-
-# Cleanup
-# Remove lib after compilation
-rm -rf lib
-rm -r ./data/models
-rm ./data/preferences.json
-
+python3 ./../SDK/jplManipulation.py --assemble --plugin=${PLUGIN_NAME} --distribution=${PLATFORM} --extraPath=${EXTRAPATH}