73 lines
1.7 KiB
Bash
73 lines
1.7 KiB
Bash
#!/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
|