#!/bin/bash set -e # 执行位置 path_cur=$(cd `dirname $0`; pwd) # 编译模式 Debug Release build_type="Debug" # 生成目录 app_path="app" # 可执行程序名 appname="Train_RFID_Linux" # 创建build目录 function prepare_path() { [ -n "$1" ] && rm -rf $1 mkdir -p $1 cd $1 } # 拷贝执行文件依赖库 function cpoyLibs() { # 利用 ldd 提取依赖库的具体路径 liblist=$(ldd ./$app_path/$appname | awk '{ if (match($3,"/")){ printf("%s "), $3 } }') # 拷贝库文件和可执行程序到目标文件夹 cp $liblist ./$app_path/lib } # X86 平台的 function build_X86(){ local path_build=$path_cur/build prepare_path $path_build if [ "$1" == $app_path ]; then cmake -DCMAKE_BUILD_TYPE="Release" .. else cmake -DCMAKE_BUILD_TYPE="Debug" .. fi make -j4 local ret=$? cd .. return ${ret} } # build with different according to the parameter, default is A300 if [ "$1" == $app_path ]; then echo "---------正式模式----------" rm -rf $app_path echo "创建文件目录..." mkdir -p $app_path mkdir -p $app_path/config $app_path/lib $app_path/logs $app_path/rfid_logs $app_path/result build_X86 $1 echo "开始拷贝软件库文件..." cpoyLibs else echo "---------调试模式----------" rm -rf $app_path echo "创建文件目录..." mkdir -p $app_path mkdir -p $app_path/config $app_path/lib $app_path/logs $app_path/rfid_logs $app_path/result build_X86 fi if [ $? -ne 0 ]; then exit 1 fi echo "开始拷贝配置文件..." #拷贝yaml文件和xml文件 cp -f ./config/* ./$app_path/config echo "-----------successfully--------------" exit 0