Train_RFID_Linux/build.sh

73 lines
1.7 KiB
Bash
Raw Normal View History

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