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