1#!/usr/bin/env bash 2# Copyright (c) 2021-2024 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 18PANDA_SDK_BUILD_TYPE="${1:-"Release"}" 19 20SCRIPT_DIR="$(realpath "$(dirname "${BASH_SOURCE[0]}")")" 21 22BUILD_DIR=${BUILD_DIR:-'.'} 23mkdir -p "$BUILD_DIR" && cd "$BUILD_DIR" 24 25OHOS_SDK_NATIVE_URL=${OHOS_SDK_NATIVE_URL:-'https://contentcenter-drcn.dbankcdn.com/pub_1/DevEcoSpace_1_900_9/4a/v3/oidhh45PQ-qFyqu2pO5Kmw/nZgBfyRtTzuaBczj9WgsWQ.zip'} 26 27# Search for default OHOS SDK native or download it 28if [ -z "$OHOS_SDK_NATIVE" ]; then 29 OHOS_SDK_NATIVE_DEFAULT_1=/opt/ohos-sdk/native 30 OHOS_SDK_NATIVE_DEFAULT_2="$(realpath ./native)" 31 if [ -d "$OHOS_SDK_NATIVE_DEFAULT_1" ]; then 32 OHOS_SDK_NATIVE="$OHOS_SDK_NATIVE_DEFAULT_1" 33 elif [ -d "$OHOS_SDK_NATIVE_DEFAULT_2" ]; then 34 OHOS_SDK_NATIVE="$OHOS_SDK_NATIVE_DEFAULT_2" 35 else 36 if [ -z "$OHOS_SDK_NATIVE_URL" ]; then 37 echo "Error: OHOS SDK not found, please set OHOS_SDK_NATIVE or OHOS_SDK_NATIVE_URL environment variable" 38 exit 1 39 fi 40 curl --retry 5 -Lo ohos-sdk-native.zip "${OHOS_SDK_NATIVE_URL}" 41 unzip -q ohos-sdk-native.zip 42 OHOS_SDK_NATIVE=native 43 fi 44fi 45 46# Build panda SDK 47SDK_VERSION=$(grep '"version":' "$SCRIPT_DIR"/package.json | sed 's|.*"version":.*"\(.*\)".*|\1|') 48"$SCRIPT_DIR"/build_sdk.sh "$OHOS_SDK_NATIVE" build-sdk "$PANDA_SDK_BUILD_TYPE" 49 50ACTUAL="/tmp/panda_sdk_test_actual.txt" 51EXPECTED="/tmp/panda_sdk_test_expected.txt" 52 53# Test 1 54find build-sdk -maxdepth 1 | sort --version-sort >"$ACTUAL" 55echo "build-sdk 56build-sdk/linux_arm64_host_tools 57build-sdk/linux_host_tools 58build-sdk/ohos_arm64 59build-sdk/panda-sdk-$SDK_VERSION.tgz 60build-sdk/sdk 61build-sdk/windows_host_tools" >"$EXPECTED" 62diff "$ACTUAL" "$EXPECTED" 63 64# Test 2 65find build-sdk/sdk/ -maxdepth 3 | sort --version-sort >"$ACTUAL" 66EXPECTED_TEST2="$SCRIPT_DIR/test2_file_list_expected.txt" 67diff "$ACTUAL" "$EXPECTED_TEST2" 68 69rm "$ACTUAL" "$EXPECTED" 70