• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/bin/bash
2# Copyright (c) Huawei Technologies Co., Ltd. 2020-2030. All rights reserved.
3set -e
4
5while getopts "o:i:l:t:p: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        "p")
18            PYTHON_DIR=${OPTARG}
19            ;;
20        "h")
21            echo "help"
22            ;;
23        ?)
24            echo "unkonw argument"
25            exit 1
26            ;;
27    esac
28done
29
30
31ndk_dir=$(ls ${SOURCE_DIR}/lib/|more |grep ohos |grep -v mipsel |grep -v riscv |awk '{print $NF}')
32
33for i in $ndk_dir
34do
35	find ${OUT_DIR}/lib/$i -name 'libc++.a' -type f  -exec bash -c 'echo "INPUT(-lc++_static -lc++abi)" > $1' _ {}  \;
36	find ${OUT_DIR}/lib/$i -name 'libc++.so' -type f -exec bash -c 'echo "INPUT(-lc++_shared)" > $1'  _ {}  \;
37done
38
39cp -rfp ${SOURCE_DIR}/lib   ${OUT_DIR}
40cp -rfp ${SOURCE_DIR}/include  ${OUT_DIR}
41
42if [ -n "${PYTHON_DIR+x}" ]; then
43    if [ -e "${OUT_DIR}/python3" ]; then
44        rm -rf ${OUT_DIR}/python3
45    fi
46    VERSION_NAME=$(ls -1 "${PYTHON_DIR}" | head -n 1)
47    cp -rfp ${PYTHON_DIR}/${VERSION_NAME} ${OUT_DIR}/python3
48    if [ -e "${OUT_DIR}/bin/libpython3.11.dll" ]; then
49        cp -rfp ${PYTHON_DIR}/3.11.4/bin/libpython3.11.dll ${OUT_DIR}/bin/libpython3.11.dll
50    fi
51fi
52
53function strip_dir() {
54    for file in `ls $1`
55    do
56        if [ -f $1"/"$file ] && [[ $(file -b $1"/"$file) =~ "shared object" ]]
57        then
58            echo $1"/"$file
59            ${TOOL_DIR}/llvm-strip $1"/"$file
60        elif [ -d $1"/"$file ]
61        then
62            strip_dir $1"/"$file
63        fi
64    done
65}
66function remove_unnecessary_file() {
67    file_list=("bin/llvm-ifs" "bin/llvm-ifs.exe" "lib/clang/current" "lib/arm-liteos-ohos" "lib/loongarch64-linux-ohos" "lib/mipsel-linux-ohos" "lib/riscv64-linux-ohos" "lib/clang/15.0.4/bin/loongarch64-linux-ohos" "lib/clang/15.0.4/lib/arm-liteos-ohos" "lib/clang/15.0.4/lib/i386-unknown-linux-gnu" "lib/clang/15.0.4/lib/loongarch64-linux-ohos" "lib/clang/15.0.4/lib/mipsel-linux-ohos" "lib/clang/15.0.4/lib/riscv64-linux-ohos" "lib/clang/15.0.4/lib/windows")
68
69    for i in "${file_list[@]}"; do
70        if [ -e "${OUT_DIR}/${i}" ]; then
71            rm -rf "${OUT_DIR}/${i}"
72        fi
73    done
74}
75remove_unnecessary_file
76strip_dir ${OUT_DIR}/lib
77