#!/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 " 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 " fi