code_device/build.sh

214 lines
6.4 KiB
Bash
Raw Normal View History

# Main and minor version definition
2022-05-24 03:21:42 +00:00
oem=$1 #厂商
cpu=$(arch) #cpu架构
sys=$(cat /etc/issue)
sys=${sys%% *} #操作系统
2022-08-29 09:59:06 +00:00
2023-03-07 06:47:11 +00:00
docpath="" #哪种打包方式 uos 还是kylin
#web so 只走kylin的打包方式
if [ $2 ];
then
docpath=$2 #可以手动设置操作系统来进行打包
echo "$docpath"
else
if [ "$sys" == "UnionTech" ];
then
docpath=uos
else
docpath=kylin
fi
fi
2023-01-14 03:45:41 +00:00
script_dir=$(cd $(dirname $0);pwd)
cd $script_dir
echo $script_dir
pwd
2023-01-14 03:53:42 +00:00
err=0
2022-08-29 09:59:06 +00:00
mainverstr=$(cat ../sdk/include/huagao/brand.h |grep VERSION_MAIN)
mainverstr=${mainverstr: -3}
mainverstr=$(echo $mainverstr)
2022-08-29 08:51:14 +00:00
minver=$(cat ../sdk/include/huagao/brand.h |grep VERSION_SUB)
2022-08-29 09:59:06 +00:00
minver=${minver: -3}
minver=$(echo $minver)
mainverstr="s/ver_1/$mainverstr/g" #版本控制
minverstr="s/ver_2/"
2022-08-04 05:32:37 +00:00
verstr3="s/ver_3/"
ver3=10
2023-03-07 06:47:11 +00:00
2023-01-12 07:13:08 +00:00
cp hgsane/CMakeLists.txt hgsane/CMakeLists.txtbkp
cp hgdriver/hgdev/CMakeLists.txt hgdriver/hgdev/CMakeLists.txtbkp
cp hgdriver/wrapper/CMakeLists.txt hgdriver/wrapper/CMakeLists.txtbkp
2022-07-28 10:50:55 +00:00
#sudo apt install libudev-dev
minverstr=${minverstr}${minver}"/g"
echo "minor version replacing pattern: "${minverstr}
2022-08-29 09:59:06 +00:00
echo $mainverstr
2023-03-07 06:47:11 +00:00
if [ "$oem" == "hw" ]; then
2022-08-04 05:32:37 +00:00
ver3=16
2023-01-12 07:13:08 +00:00
sed -i "s/DOEM_HUAGAO/DOEM_HANWANG/g" hgdriver/hgdev/CMakeLists.txt
sed -i "s/DOEM_HUAGAO/DOEM_HANWANG/g" hgdriver/wrapper/CMakeLists.txt
sed -i "s/1%m%d1/1%m%d6/g" hgdriver/wrapper/CMakeLists.txt
2023-03-07 06:47:11 +00:00
elif [ "$oem" == "lsc" ]; then
2022-08-04 05:32:37 +00:00
ver3=14
2023-01-12 07:13:08 +00:00
sed -i "s/DOEM_HUAGAO/DOEM_LISICHENG/g" hgdriver/hgdev/CMakeLists.txt
sed -i "s/DOEM_HUAGAO/DOEM_LISICHENG/g" hgdriver/wrapper/CMakeLists.txt
sed -i "s/1%m%d1/1%m%d7/g" hgdriver/wrapper/CMakeLists.txt
2023-03-07 06:47:11 +00:00
elif [ "$oem" == "cts" ]; then
2023-01-12 07:13:08 +00:00
ver3=18
sed -i "s/DOEM_HUAGAO/DOEM_CANGTIAN/g" hgdriver/hgdev/CMakeLists.txt
sed -i "s/DOEM_HUAGAO/DOEM_CANGTIAN/g" hgdriver/wrapper/CMakeLists.txt
sed -i "s/1%m%d1/1%m%d8/g" hgdriver/wrapper/CMakeLists.txt
2023-02-03 06:38:22 +00:00
2023-03-07 06:47:11 +00:00
elif [ "$oem" == "zj" ]; then
2023-02-03 06:38:22 +00:00
ver3=20
sed -i "s/DOEM_HUAGAO/DOEM_ZHONGJING/g" hgdriver/hgdev/CMakeLists.txt
sed -i "s/DOEM_HUAGAO/DOEM_ZHONGJING/g" hgdriver/wrapper/CMakeLists.txt
2023-02-03 07:21:18 +00:00
sed -i "s/1%m%d1/1%m%d9/g" hgdriver/wrapper/CMakeLists.txt
elif [ "$oem" == "zg" ]; then
ver3=22
sed -i "s/DOEM_HUAGAO/DOEM_ZIGUANG/g" hgdriver/hgdev/CMakeLists.txt
sed -i "s/DOEM_HUAGAO/DOEM_ZIGUANG/g" hgdriver/wrapper/CMakeLists.txt
sed -i "s/1%m%d1/1%m%d9/g" hgdriver/wrapper/CMakeLists.txt
2023-07-21 03:44:37 +00:00
elif [ "$oem" == "dl" ]; then
ver3=24
sed -i "s/DOEM_HUAGAO/DOEM_DELI/g" hgdriver/hgdev/CMakeLists.txt
sed -i "s/DOEM_HUAGAO/DOEM_DELI/g" hgdriver/wrapper/CMakeLists.txt
sed -i "s/1%m%d1/1%m%d9/g" hgdriver/wrapper/CMakeLists.txt
elif [ "$oem" == "neu" ]; then
ver3=26
sed -i "s/DOEM_HUAGAO/DOEM_NEUTRAL/g" hgdriver/hgdev/CMakeLists.txt
sed -i "s/DOEM_HUAGAO/DOEM_NEUTRAL/g" hgdriver/wrapper/CMakeLists.txt
sed -i "s/1%m%d1/1%m%d9/g" hgdriver/wrapper/CMakeLists.txt
2023-01-12 07:13:08 +00:00
fi
2023-03-07 06:47:11 +00:00
project_sanename="project(sane-$oem"sane")"
project_drivername="project($oem"driver")"
echo $project_sanename $project_drivername
#project(sane-hgsane)
pwd
2023-01-12 07:13:08 +00:00
if [ "$oem" != "" ]; then
2023-03-07 06:47:11 +00:00
#sed -i "1s/.*/$project_sanename/g" hgsane/CMakeLists.txt
#sed -i "1s/.*/$project_drivername/g" hgdriver/wrapper/CMakeLists.txt
2023-01-12 07:13:08 +00:00
sed -i "s/hgsane/$oem"sane"/g" hgsane/CMakeLists.txt
sed -i "s/hgdriver/$oem"driver"/g" hgdriver/wrapper/CMakeLists.txt hgsane/CMakeLists.txt
2023-03-07 06:47:11 +00:00
2023-01-12 07:13:08 +00:00
echo $oem $oem
fi
2022-08-04 05:32:37 +00:00
ver3=$[$ver3 * 10]
if [ "$cpu" == "x86_64" ]; then
2022-11-24 08:01:24 +00:00
ver3=$[$ver3 + 5]
2022-08-04 05:32:37 +00:00
elif [ "$cpu" == "aarch64" ]; then
ver3=$[$ver3 + 2]
elif [ "$cpu" == "mips64" ]; then
ver3=$[$ver3 + 3]
2022-10-14 08:15:45 +00:00
elif [ "$cpu" == "loongarch64" ]; then
ver3=$[$ver3 + 4]
2023-09-01 07:13:03 +00:00
elif [ "$cpu" == "sw_64" ];
then
ver3=$[$ver3 + 7]
2022-08-04 05:32:37 +00:00
fi
ver3=$[$ver3 * 100]
if [ "$sys" == "UnionTech" ];then
# uos ...
ver3=$[$ver3 + 20]
elif [ "$sys" == "Kylin" ];then
# kylin ...
ver3=$[$ver3 + 21]
else
# unknown OS, set as linux
ver3=$[$ver3 + 10]
fi
verstr3=${verstr3}"${ver3}/g"
echo "3rd version replacing pattern: "${verstr3}
2023-01-12 07:13:08 +00:00
2023-03-07 06:47:11 +00:00
sed -i ${mainverstr} hgdriver/wrapper/CMakeLists.txt
sed -i ${minverstr} hgdriver/wrapper/CMakeLists.txt
sed -i ${verstr3} hgdriver/wrapper/CMakeLists.txt
2022-08-04 05:32:37 +00:00
2023-03-07 06:47:11 +00:00
#设置库的链接路径是 kylin 还是uos
if [ "$sys" == "UnionTech" ];
then
2022-05-06 09:34:17 +00:00
sed -i "s/kylin/uos/g" hgdriver/wrapper/CMakeLists.txt
2023-03-07 06:47:11 +00:00
sed -i "s/kylin/uos/g" hgsane/CMakeLists.txt
elif [ "$sys" == "Kylin" ];
then
sed -i "s/uos/kylin/g" hgdriver/wrapper/CMakeLists.txt
sed -i "s/uos/kylin/g" hgsane/CMakeLists.txt
2022-05-24 03:21:42 +00:00
else
2023-03-07 06:47:11 +00:00
sed -i "s/uos/kylin/g" hgdriver/wrapper/CMakeLists.txt
sed -i "s/uos/kylin/g" hgsane/CMakeLists.txt
2022-06-15 07:28:32 +00:00
echo "其他操作系统"
2022-05-05 07:57:02 +00:00
fi
2022-05-03 03:56:07 +00:00
2023-03-07 06:47:11 +00:00
#设置代码宏定义
if [ "$docpath" == "uos" ];
then
sed -i "s/-DKYLIN/-DUOS/g" hgdriver/wrapper/CMakeLists.txt
sed -i "s/-DKYLIN/-DUOS/g" hgdriver/hgdev/CMakeLists.txt
else
sed -i "s/-DUOS/-DKYLIN/g" hgdriver/wrapper/CMakeLists.txt
sed -i "s/-DUOS/-DKYLIN/g" hgdriver/hgdev/CMakeLists.txt
fi
echo $docpath
2022-05-06 05:37:14 +00:00
cd ../
if [ -f ./build/CMakeCache.txt ]; then
2022-06-08 07:22:02 +00:00
echo ""
#rm -rf ./build/*
else
mkdir build
fi
2022-05-24 03:21:42 +00:00
2022-05-05 07:57:02 +00:00
cd build
2022-05-24 03:21:42 +00:00
2022-05-06 05:37:14 +00:00
cmake ../code_device
2023-01-14 07:33:49 +00:00
make -j6
make -j6
2022-05-05 07:57:02 +00:00
if [ $? -ne 0 ];then
2023-01-14 03:53:42 +00:00
err=1
echo "--------------------------------------make fail---------------------------------------"
# commented, we should restore the CMakeLists.txts...
else
2023-01-14 03:53:42 +00:00
err=0
echo "--------------------------------------make succeed------------------------------------"
fi
#make
if [ -f ../code_device/hgsane/CMakeLists.txtbkp ]; then
mv ../code_device/hgsane/CMakeLists.txtbkp ../code_device/hgsane/CMakeLists.txt
fi
2023-01-12 07:13:08 +00:00
if [ -f ../code_device/hgdriver/hgdev/CMakeLists.txtbkp ]; then
2023-01-12 07:13:08 +00:00
mv ../code_device/hgdriver/hgdev/CMakeLists.txtbkp ../code_device/hgdriver/hgdev/CMakeLists.txt
pwd
fi
2023-01-12 07:13:08 +00:00
if [ -f ../code_device/hgdriver/wrapper/CMakeLists.txtbkp ]; then
mv ../code_device/hgdriver/wrapper/CMakeLists.txtbkp ../code_device/hgdriver/wrapper/CMakeLists.txt
2023-01-12 07:13:08 +00:00
pwd
2022-05-24 06:00:46 +00:00
fi
2022-05-26 02:31:22 +00:00
2023-02-03 06:38:22 +00:00
exit $err