• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_host_tools
57build-sdk/ohos_arm64
58build-sdk/panda-sdk-$SDK_VERSION.tgz
59build-sdk/sdk
60build-sdk/windows_host_tools" >"$EXPECTED"
61diff "$ACTUAL" "$EXPECTED"
62
63# Test 2
64find build-sdk/sdk/ -maxdepth 3 | sort --version-sort >"$ACTUAL"
65echo 'build-sdk/sdk/
66build-sdk/sdk/ets
67build-sdk/sdk/ets/etsstdlib.abc
68build-sdk/sdk/ets/stdlib
69build-sdk/sdk/ets/stdlib/README.md
70build-sdk/sdk/ets/stdlib/escompat
71build-sdk/sdk/ets/stdlib/native
72build-sdk/sdk/ets/stdlib/std
73build-sdk/sdk/linux_host_tools
74build-sdk/sdk/linux_host_tools/bin
75build-sdk/sdk/linux_host_tools/bin/ark
76build-sdk/sdk/linux_host_tools/bin/ark_aot
77build-sdk/sdk/linux_host_tools/bin/ark_disasm
78build-sdk/sdk/linux_host_tools/bin/ark_link
79build-sdk/sdk/linux_host_tools/bin/es2panda
80build-sdk/sdk/linux_host_tools/lib
81build-sdk/sdk/linux_host_tools/lib/libarkaotmanager.so
82build-sdk/sdk/linux_host_tools/lib/libarkassembler.so
83build-sdk/sdk/linux_host_tools/lib/libarkbase.so
84build-sdk/sdk/linux_host_tools/lib/libarkbytecodeopt.so
85build-sdk/sdk/linux_host_tools/lib/libarkcompiler.so
86build-sdk/sdk/linux_host_tools/lib/libarkdisassembler.so
87build-sdk/sdk/linux_host_tools/lib/libarkfile.so
88build-sdk/sdk/linux_host_tools/lib/libarklinker.so
89build-sdk/sdk/linux_host_tools/lib/libarkruntime.so
90build-sdk/sdk/linux_host_tools/lib/libarkziparchive.so
91build-sdk/sdk/linux_host_tools/lib/libc_secshared.so
92build-sdk/sdk/linux_host_tools/lib/libe2p_test_plugin.so
93build-sdk/sdk/linux_host_tools/lib/libes2panda-lib.so
94build-sdk/sdk/linux_host_tools/lib/libes2panda-public.so
95build-sdk/sdk/linux_host_tools/lib/libetsnative.so
96build-sdk/sdk/linux_host_tools/lib/libhmicui18n.z.so
97build-sdk/sdk/linux_host_tools/lib/libhmicuuc.z.so
98build-sdk/sdk/linux_host_tools/lib/libinit_icu.so
99build-sdk/sdk/linux_host_tools/lib/libirtoc.so
100build-sdk/sdk/ohos_arm64
101build-sdk/sdk/ohos_arm64/bin
102build-sdk/sdk/ohos_arm64/bin/ark
103build-sdk/sdk/ohos_arm64/bin/ark_aot
104build-sdk/sdk/ohos_arm64/include
105build-sdk/sdk/ohos_arm64/include/compiler
106build-sdk/sdk/ohos_arm64/include/libpandabase
107build-sdk/sdk/ohos_arm64/include/libpandafile
108build-sdk/sdk/ohos_arm64/include/panda_gen_options
109build-sdk/sdk/ohos_arm64/include/platforms
110build-sdk/sdk/ohos_arm64/include/plugins
111build-sdk/sdk/ohos_arm64/include/runtime
112build-sdk/sdk/ohos_arm64/include/third_party
113build-sdk/sdk/ohos_arm64/include/tools
114build-sdk/sdk/ohos_arm64/include/verification
115build-sdk/sdk/ohos_arm64/lib
116build-sdk/sdk/ohos_arm64/lib/libarkaotmanager.so
117build-sdk/sdk/ohos_arm64/lib/libarkassembler.so
118build-sdk/sdk/ohos_arm64/lib/libarkbase.so
119build-sdk/sdk/ohos_arm64/lib/libarkbytecodeopt.so
120build-sdk/sdk/ohos_arm64/lib/libarkcompiler.so
121build-sdk/sdk/ohos_arm64/lib/libarkfile.so
122build-sdk/sdk/ohos_arm64/lib/libarkruntime.so
123build-sdk/sdk/ohos_arm64/lib/libarkruntime_static.a
124build-sdk/sdk/ohos_arm64/lib/libarkziparchive.so
125build-sdk/sdk/ohos_arm64/lib/libc_secshared.so
126build-sdk/sdk/ohos_arm64/lib/libdprof.a
127build-sdk/sdk/ohos_arm64/lib/libe2p_test_plugin.so
128build-sdk/sdk/ohos_arm64/lib/libes2panda-lib.so
129build-sdk/sdk/ohos_arm64/lib/libes2panda-public.so
130build-sdk/sdk/ohos_arm64/lib/libetsnative.so
131build-sdk/sdk/ohos_arm64/lib/libets_interop_js_napi.so
132build-sdk/sdk/ohos_arm64/lib/libhmicui18n.z.so
133build-sdk/sdk/ohos_arm64/lib/libhmicuuc.z.so
134build-sdk/sdk/ohos_arm64/lib/libinit_icu.a
135build-sdk/sdk/ohos_arm64/plugins
136build-sdk/sdk/ohos_arm64/plugins/ecmascript
137build-sdk/sdk/package.json
138build-sdk/sdk/tslinter
139build-sdk/sdk/tslinter/README.md
140build-sdk/sdk/tslinter/bin
141build-sdk/sdk/tslinter/bin/tslinter.js
142build-sdk/sdk/tslinter/dist
143build-sdk/sdk/tslinter/dist/tslinter.js
144build-sdk/sdk/tslinter/package.json
145build-sdk/sdk/windows_host_tools
146build-sdk/sdk/windows_host_tools/bin
147build-sdk/sdk/windows_host_tools/bin/ark_link.exe
148build-sdk/sdk/windows_host_tools/bin/es2panda.exe' >"$EXPECTED"
149diff "$ACTUAL" "$EXPECTED"
150
151rm "$ACTUAL" "$EXPECTED"
152