1#!/bin/bash 2 3usage() 4{ 5 echo "USAGE: [-U] [-CK] [-A] [-p] [-o] [-u] [-v VERSION_NAME] " 6 echo "No ARGS means use default build option " 7 echo "WHERE: -C = build cross " 8 echo "WHERE: -R = rebuild " 9 exit 1 10} 11 12function clean_cmake_config() 13{ 14 rm -rf CMakeCache.txt 15 rm -rf CMakeFiles 16 rm -rf cmake_install.cmake 17 rm -rf Makefile 18 rm -rf CTestTestfile.cmake 19} 20 21BUILD_DIR=output 22BUILD_CLEAN=false 23BUILD_CROSS=false 24 25# check pass argument 26while getopts "RC" arg 27do 28 case $arg in 29 R) 30 echo "will reconfigure project" 31 BUILD_CLEAN=true 32 ;; 33 C) 34 echo "will build cross platform" 35 BUILD_CROSS=true 36 ;; 37 ?) 38 usage ;; 39 esac 40done 41 42if [ ! -d "$BUILD_DIR/release" ]; then 43 mkdir -p "$BUILD_DIR/release" 44fi 45 46# build clean 47if [ "$BUILD_CLEAN" = true ] ; then 48 rm "${BUILD_DIR:?}/*" -rf 49fi 50 51cd $BUILD_DIR || exit 52 53# build cross 54if [ "$BUILD_CROSS" = true ] ; then 55 echo "start build cross paltform" 56 cmake -DCMAKE_TOOLCHAIN_FILE=toolchainfile.cmake \ 57 -DCMAKE_INSTALL_PREFIX=./release ../ 58else 59 cmake -DCMAKE_INSTALL_PREFIX=./release -DROOT_PROJ_BIN_DIR:STRING="../../build/linux/output/arm" \ 60 -DRKAIQ_IQFILES_DIR:STRING="../../iqfiles/isp32" ../ 61fi 62 63make -j8 64 65if [ $? -eq 0 ]; then 66 echo Build finished! 67 make install 68 clean_cmake_config 69 cd .. 70fi 71 72