#!/bin/bash
|
|
set -e
|
|
PREFIX_PATH=`pwd`/../install/
|
|
LYFTP_SRC=http://master.weike-iot.com:2211/src/
|
|
CROSS_COMPILE=/opt/gcc-aarch32-10.3-2021.07/bin/arm-none-linux-gnueabihf-
|
|
TOOLCHAIN=cortexa7.toolchain.cmake
|
|
JOBS=`cat /proc/cpuinfo | grep processor | wc -l`
|
|
function msg_banner()
|
{
|
echo ""
|
echo "+-----------------------------------------------------------------------"
|
echo "| $1 "
|
echo "+-----------------------------------------------------------------------"
|
echo ""
|
}
|
|
function check_result()
|
{
|
if [ $? != 0 ] ; then
|
echo ""
|
echo "+-----------------------------------------------------------------------"
|
echo "| $1 "
|
echo "+-----------------------------------------------------------------------"
|
echo ""
|
exit ;
|
fi
|
}
|
|
|
function compile_opencv()
|
{
|
SRC_NAME=opencv-3.4.6
|
PACK_SUFIX=zip
|
|
if [ -f ${PREFIX_PATH}/lib/libopencv_core.so ] ; then
|
msg_banner "$SRC_NAME already compile and installed"
|
return 0;
|
fi
|
|
msg_banner "Start cross compile $SRC_NAME "
|
|
|
if [ ! -d $SRC_NAME ] ; then
|
if [ ! -f $SRC_NAME.zip ] ; then
|
wget $LYFTP_SRC/$SRC_NAME.${PACK_SUFIX}
|
fi
|
|
unzip $SRC_NAME.${PACK_SUFIX}
|
fi
|
|
cd $SRC_NAME
|
|
rm -f platforms/linux/${TOOLCHAIN}
|
cat >platforms/linux/${TOOLCHAIN} <<EOF
|
|
set(GCC_COMPILER_VERSION "" CACHE STRING "GCC Compiler version")
|
set(GNU_MACHINE "${CROSS_COMPILE%*-}" CACHE STRING "GNU compiler triple")
|
include("\${CMAKE_CURRENT_LIST_DIR}/arm.toolchain.cmake")
|
|
EOF
|
|
mkdir -p release
|
cd release
|
|
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=`pwd`/../../../install \
|
-DCMAKE_TOOLCHAIN_FILE="../platforms/linux/${TOOLCHAIN}" -DSOFTFP=ON -DENABLE_PROFILING=OFF \
|
-DWITH_OPENCL=OFF -DWITH_TBB=ONĀ -DWITH_V4L=ON -DHAVE_CAMV4L2=ON -DBUILD_TESTS=OFF \
|
-DINSTALL_PYTHON_EXAMPLES=OFF -DBUILD_EXAMPLES=OFF -DWITH_FFMPEG=ON -DHAVE_FFMPEG=ON \
|
-DBUILD_opencv_js=OFF -DENABLE_NEON=OFF -DENABLE_VFPV3=OFF ../
|
|
make && make install
|
|
cd -
|
}
|
|
compile_opencv
|