• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/usr/bin/env bash
2# Copyright (c) 2021-2025 Huawei Device Co., Ltd.
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15set -eo pipefail
16set -x
17
18export PANDA_SDK_BUILD_TYPE="Release"
19export OHOS_ARM32="false"
20export OHOS_ARM64="false"
21export LINUX_ARM64_TOOLS="false"
22export LINUX_TOOLS="false"
23export WINDOWS_TOOLS="false"
24export TS_LINTER="false"
25export ETS_STD_LIB="false"
26export ICU_DAT_FILE="false"
27export PANDA_LLVM_BACKEND="ON"
28export PANDA_BUILD_LLVM_BINARIES="OFF"
29export LLVM_BIN_AARCH64_RELEASE="/opt/llvm-15-release-aarch64"
30export LLVM_BIN_AARCH64_FASTVERIFY="/opt/llvm-15-release-aarch64-fastverify"
31export LLVM_BIN_AARCH64_DEBUG="/opt/llvm-15-debug-aarch64"
32export LLVM_BIN_X86_64_RELEASE="/opt/llvm-15-release-x86_64"
33export LLVM_BIN_X86_64_DEBUG="/opt/llvm-15-debug-x86_64"
34export LLVM_BIN_OHOS_RELEASE="/opt/llvm-15-release-ohos"
35export LLVM_BIN_OHOS_FASTVERIFY="/opt/llvm-15-release-ohos-fastverify"
36
37export SCRIPT_DIR="$(realpath "$(dirname "${BASH_SOURCE[0]}")")"
38
39export ARK_ROOT="$SCRIPT_DIR/../.."
40
41export BUILD_TYPE_RELEASE="Release"
42BUILD_TYPE_FAST_VERIFY="FastVerify"
43BUILD_TYPE_DEBUG="Debug"
44
45BUILD_DIR=${BUILD_DIR:-"$SCRIPT_DIR"}
46
47source "$SCRIPT_DIR"/build_sdk_lib
48
49if  [ "$1" == "-h" ] || [ "$1" == "--help" ]; then
50    print_help
51    exit 0
52fi
53
54SDK_BUILD_ROOT="$BUILD_DIR/$1"
55mkdir -p "$SDK_BUILD_ROOT"
56shift
57
58export OHOS_SDK_NATIVE
59enable_ohos_sdk_native
60
61parse_options "$@"
62
63case "$PANDA_SDK_BUILD_TYPE" in
64"$BUILD_TYPE_RELEASE" | "$BUILD_TYPE_FAST_VERIFY" | "$BUILD_TYPE_DEBUG") ;;
65*)
66    echo "Invalid build_type option!"
67    usage
68    ;;
69esac
70
71if [ ! -d "$OHOS_SDK_NATIVE" ]; then
72    echo "Error: No such directory: $OHOS_SDK_NATIVE"
73    usage
74fi
75
76if [ -z "$SDK_BUILD_ROOT" ]; then
77    echo "Error: path to panda sdk destination is not provided"
78    usage
79fi
80
81export PANDA_SDK_PATH="$SDK_BUILD_ROOT/sdk"
82rm -rf "$PANDA_SDK_PATH"
83
84build_sdk_targets
85
86echo "> Packing NPM package..."
87mkdir -p "$PANDA_SDK_PATH"
88cp "$SCRIPT_DIR"/package.json "$PANDA_SDK_PATH"
89cd "$PANDA_SDK_PATH"
90npm pack --pack-destination ..
91cd "$BUILD_DIR"
92