chendl's picture
Add application file
0b7b08a
raw
history blame
2.51 kB
#!/usr/bin/env bash
set -e
if [ -z $CXX ];then
echo "please export you c++ toolchain to CXX"
echo "for example:"
echo "build for host: export CXX=g++"
echo "cross build for aarch64-android(always locate in NDK): export CXX=aarch64-linux-android21-clang++"
echo "cross build for aarch64-linux: export CXX=aarch64-linux-gnu-g++"
exit -1
fi
if [ -z $MGE_INSTALL_PATH ];then
echo "please refsi ./README.md to init MGE_INSTALL_PATH env"
exit -1
fi
if [ -z $OPENCV_INSTALL_INCLUDE_PATH ];then
echo "please refs ./README.md to init OPENCV_INSTALL_INCLUDE_PATH env"
exit -1
fi
if [ -z $OPENCV_INSTALL_LIB_PATH ];then
echo "please refs ./README.md to init OPENCV_INSTALL_LIB_PATH env"
exit -1
fi
INCLUDE_FLAG="-I$MGE_INSTALL_PATH/include -I$OPENCV_INSTALL_INCLUDE_PATH"
LINK_FLAG="-L$MGE_INSTALL_PATH/lib/ -lmegengine -L$OPENCV_INSTALL_LIB_PATH -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_imgcodecs"
BUILD_FLAG="-static-libstdc++ -O3 -pie -fPIE -g"
if [[ $CXX =~ "android" ]]; then
LINK_FLAG="${LINK_FLAG} -llog -lz"
fi
echo "CXX: $CXX"
echo "MGE_INSTALL_PATH: $MGE_INSTALL_PATH"
echo "INCLUDE_FLAG: $INCLUDE_FLAG"
echo "LINK_FLAG: $LINK_FLAG"
echo "BUILD_FLAG: $BUILD_FLAG"
echo "[" > compile_commands.json
echo "{" >> compile_commands.json
echo "\"directory\": \"$PWD\"," >> compile_commands.json
echo "\"command\": \"$CXX yolox.cpp -o yolox ${INCLUDE_FLAG} ${LINK_FLAG}\"," >> compile_commands.json
echo "\"file\": \"$PWD/yolox.cpp\"," >> compile_commands.json
echo "}," >> compile_commands.json
echo "]" >> compile_commands.json
$CXX yolox.cpp -o yolox ${INCLUDE_FLAG} ${LINK_FLAG} ${BUILD_FLAG}
echo "build success, output file: yolox"
if [[ $CXX =~ "android" ]]; then
echo "try command to run:"
echo "adb push/scp $MGE_INSTALL_PATH/lib/libmegengine.so android_phone"
echo "adb push/scp $OPENCV_INSTALL_LIB_PATH/*.so android_phone"
echo "adb push/scp ./yolox yolox_s.mge android_phone"
echo "adb push/scp ../../../assets/dog.jpg android_phone"
echo "adb/ssh to android_phone, then run: LD_LIBRARY_PATH=. ./yolox yolox_s.mge dog.jpg cpu/multithread <warmup_count> <thread_number> <use_fast_run> <use_weight_preprocess>"
else
echo "try command to run: LD_LIBRARY_PATH=$MGE_INSTALL_PATH/lib/:$OPENCV_INSTALL_LIB_PATH ./yolox yolox_s.mge ../../../assets/dog.jpg cuda/cpu/multithread <warmup_count> <thread_number> <use_fast_run> <use_weight_preprocess>"
fi