1#!/bin/bash 2# Copyright (c) Huawei Technologies Co., Ltd. 2020-2030. All rights reserved. 3set -e 4 5while getopts "o:i:l:t:h" arg 6do 7 case "${arg}" in 8 "o") 9 OUT_DIR=${OPTARG} 10 ;; 11 "i") 12 SOURCE_DIR=${OPTARG} 13 ;; 14 "l") 15 TOOL_DIR=${OPTARG} 16 ;; 17 "h") 18 echo "help" 19 ;; 20 ?) 21 echo "unkonw argument" 22 exit 1 23 ;; 24 esac 25done 26 27 28ndk_dir=$(ls ${SOURCE_DIR}/lib/|more |grep ohos |grep -v mipsel |grep -v riscv |awk '{print $NF}') 29 30for i in $ndk_dir 31do 32 find ${OUT_DIR}/lib/$i -name 'libc++.a' -type f -exec bash -c 'echo "INPUT(-lc++_static -lc++abi)" > $1' _ {} \; 33 find ${OUT_DIR}/lib/$i -name 'libc++.so' -type f -exec bash -c 'echo "INPUT(-lc++_shared)" > $1' _ {} \; 34done 35 36cp -rfp ${SOURCE_DIR}/lib ${OUT_DIR} 37cp -rfp ${SOURCE_DIR}/include ${OUT_DIR} 38 39function strip_dir() { 40 for file in `ls $1` 41 do 42 if [ -f $1"/"$file ] && [[ $(file -b $1"/"$file) =~ "shared object" ]] 43 then 44 echo $1"/"$file 45 ${TOOL_DIR}/llvm-strip $1"/"$file 46 elif [ -d $1"/"$file ] 47 then 48 strip_dir $1"/"$file 49 fi 50 done 51} 52strip_dir ${OUT_DIR}/lib 53