# Main and minor version definition oem=$1 #厂商 cpu=$(arch) #cpu架构 sys=$(cat /etc/issue) sys=${sys%% *} #操作系统 # add PIDs of OEM for build DS component ... 2023-07-13 declare -a devpids 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 script_dir=$(cd $(dirname $0);pwd) cd $script_dir echo $script_dir pwd err=0 mainverstr=$(cat ../sdk/include/huagao/brand.h |grep VERSION_MAIN) mainverstr=${mainverstr: -3} mainverstr=$(echo $mainverstr) minver=$(cat ../sdk/include/huagao/brand.h |grep VERSION_SUB) minver=${minver: -3} minver=$(echo $minver) mainverstr="s/ver_1/$mainverstr/g" #版本控制 minverstr="s/ver_2/" verstr3="s/ver_3/" ver3=10 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 #sudo apt install libudev-dev minverstr=${minverstr}${minver}"/g" echo "minor version replacing pattern: "${minverstr} echo $mainverstr if [ "$oem" == "hw" ]; then ver3=16 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 devpids=(1000 1002 7000 7002 7039 8000 9000) elif [ "$oem" == "lsc" ]; then ver3=14 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 devpids=(8420 8520 8620 8730) elif [ "$oem" == "cts" ]; then 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 devpids=(138 238 6005 6006) elif [ "$oem" == "zj" ]; then 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 sed -i "s/1%m%d1/1%m%d9/g" hgdriver/wrapper/CMakeLists.txt devpids=(9200) elif [ "$oem" == "zg" ]; then ver3=17 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 devpids=(200 210) else devpids=(100 200 300 400) oem="hg" fi project_sanename="project(sane-$oem"sane")" project_drivername="project($oem"driver")" echo $project_sanename $project_drivername #project(sane-hgsane) pwd if [ "$oem" != "" ]; then #sed -i "1s/.*/$project_sanename/g" hgsane/CMakeLists.txt #sed -i "1s/.*/$project_drivername/g" hgdriver/wrapper/CMakeLists.txt sed -i "s/hgsane/$oem"sane"/g" hgsane/CMakeLists.txt sed -i "s/hgdriver/$oem"driver"/g" hgdriver/wrapper/CMakeLists.txt hgsane/CMakeLists.txt echo $oem $oem fi ver3=$[$ver3 * 10] if [ "$cpu" == "x86_64" ]; then ver3=$[$ver3 + 5] elif [ "$cpu" == "aarch64" ]; then ver3=$[$ver3 + 2] elif [ "$cpu" == "mips64" ]; then ver3=$[$ver3 + 3] elif [ "$cpu" == "loongarch64" ]; then ver3=$[$ver3 + 4] 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} sed -i ${mainverstr} hgdriver/wrapper/CMakeLists.txt sed -i ${minverstr} hgdriver/wrapper/CMakeLists.txt sed -i ${verstr3} hgdriver/wrapper/CMakeLists.txt #设置库的链接路径是 kylin 还是uos if [ "$sys" == "UnionTech" ]; then sed -i "s/kylin/uos/g" hgdriver/wrapper/CMakeLists.txt 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 else sed -i "s/uos/kylin/g" hgdriver/wrapper/CMakeLists.txt sed -i "s/uos/kylin/g" hgsane/CMakeLists.txt echo "其他操作系统" fi #设置代码宏定义 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 cd ../ if [ -f ./build/CMakeCache.txt ]; then echo "" #rm -rf ./build/* else mkdir build fi cd build cmake ../code_device make -j6 make -j6 if [ $? -ne 0 ];then err=1 echo "--------------------------------------make fail---------------------------------------" # commented, we should restore the CMakeLists.txts... else 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 if [ -f ../code_device/hgdriver/hgdev/CMakeLists.txtbkp ]; then mv ../code_device/hgdriver/hgdev/CMakeLists.txtbkp ../code_device/hgdriver/hgdev/CMakeLists.txt pwd fi if [ -f ../code_device/hgdriver/wrapper/CMakeLists.txtbkp ]; then mv ../code_device/hgdriver/wrapper/CMakeLists.txtbkp ../code_device/hgdriver/wrapper/CMakeLists.txt pwd fi echo "******************************************************************************************" echo "* *" echo "* build DS components ... *" echo "* *" echo "******************************************************************************************" echo choice="y" if [ "$choice" == "y" ] || [ "$choice" == "Y" ]; then cd ../code_device/twain/dsm ./build.sh $docpath $cpu cd ../ds for pid in ${devpids[@]} do ./build.sh $oem $pid "nocopy" done cd ../ fi exit $err