188c88e8eSopenharmony_ci# Copyright (c) 2023 Huawei Device Co., Ltd.
288c88e8eSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
388c88e8eSopenharmony_ci# you may not use this file except in compliance with the License.
488c88e8eSopenharmony_ci# You may obtain a copy of the License at
588c88e8eSopenharmony_ci#
688c88e8eSopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
788c88e8eSopenharmony_ci#
888c88e8eSopenharmony_ci# Unless required by applicable law or agreed to in writing, software
988c88e8eSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
1088c88e8eSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1188c88e8eSopenharmony_ci# See the License for the specific language governing permissions and
1288c88e8eSopenharmony_ci# limitations under the License.
1388c88e8eSopenharmony_ci
1488c88e8eSopenharmony_ciimport("//build/ohos.gni")
1588c88e8eSopenharmony_ciimport("//build/ohos/ace/ace.gni")
1688c88e8eSopenharmony_ciimport("//foundation/arkui/ace_engine/ace_config.gni")
1788c88e8eSopenharmony_ci
1888c88e8eSopenharmony_ciweex_loader_lib_dir =
1988c88e8eSopenharmony_ci    get_label_info(":build_weex_loader_library", "target_out_dir") + "/lib"
2088c88e8eSopenharmony_ci
2188c88e8eSopenharmony_ciweex_loader_files_set = [
2288c88e8eSopenharmony_ci  weex_loader_lib_dir + "/element.js",
2388c88e8eSopenharmony_ci  weex_loader_lib_dir + "/json.js",
2488c88e8eSopenharmony_ci  weex_loader_lib_dir + "/legacy.js",
2588c88e8eSopenharmony_ci  weex_loader_lib_dir + "/loader.js",
2688c88e8eSopenharmony_ci  weex_loader_lib_dir + "/parser.js",
2788c88e8eSopenharmony_ci  weex_loader_lib_dir + "/script.js",
2888c88e8eSopenharmony_ci  weex_loader_lib_dir + "/style.js",
2988c88e8eSopenharmony_ci  weex_loader_lib_dir + "/template.js",
3088c88e8eSopenharmony_ci  weex_loader_lib_dir + "/util.js",
3188c88e8eSopenharmony_ci]
3288c88e8eSopenharmony_ci
3388c88e8eSopenharmony_ciaction("build_weex_loader_library") {
3488c88e8eSopenharmony_ci  script = "build_weex_loader_library.py"
3588c88e8eSopenharmony_ci  depfile = "$target_gen_dir/$target_name.d"
3688c88e8eSopenharmony_ci  outputs = [
3788c88e8eSopenharmony_ci    weex_loader_lib_dir,
3888c88e8eSopenharmony_ci    weex_loader_lib_dir + "/scripter",
3988c88e8eSopenharmony_ci    weex_loader_lib_dir + "/styler",
4088c88e8eSopenharmony_ci    weex_loader_lib_dir + "/element.js",
4188c88e8eSopenharmony_ci    weex_loader_lib_dir + "/json.js",
4288c88e8eSopenharmony_ci    weex_loader_lib_dir + "/legacy.js",
4388c88e8eSopenharmony_ci    weex_loader_lib_dir + "/loader.js",
4488c88e8eSopenharmony_ci    weex_loader_lib_dir + "/parser.js",
4588c88e8eSopenharmony_ci    weex_loader_lib_dir + "/script.js",
4688c88e8eSopenharmony_ci    weex_loader_lib_dir + "/style.js",
4788c88e8eSopenharmony_ci    weex_loader_lib_dir + "/template.js",
4888c88e8eSopenharmony_ci    weex_loader_lib_dir + "/util.js",
4988c88e8eSopenharmony_ci  ]
5088c88e8eSopenharmony_ci
5188c88e8eSopenharmony_ci  _babel_js = "//third_party/weex-loader/node_modules/@babel/cli/bin/babel.js"
5288c88e8eSopenharmony_ci  _babel_config_js = "//third_party/weex-loader/babel.config.js"
5388c88e8eSopenharmony_ci  _module_source_js = "//third_party/weex-loader/module-source.js"
5488c88e8eSopenharmony_ci  _uglify_source_js = "//third_party/weex-loader/uglify-source.js"
5588c88e8eSopenharmony_ci
5688c88e8eSopenharmony_ci  inputs = [
5788c88e8eSopenharmony_ci    _babel_config_js,
5888c88e8eSopenharmony_ci    _babel_js,
5988c88e8eSopenharmony_ci    _module_source_js,
6088c88e8eSopenharmony_ci    _uglify_source_js,
6188c88e8eSopenharmony_ci  ]
6288c88e8eSopenharmony_ci
6388c88e8eSopenharmony_ci  nodejs_path = "//prebuilts/build-tools/common/nodejs/current/bin/node"
6488c88e8eSopenharmony_ci
6588c88e8eSopenharmony_ci  args = [
6688c88e8eSopenharmony_ci    "--depfile",
6788c88e8eSopenharmony_ci    rebase_path(depfile, root_build_dir),
6888c88e8eSopenharmony_ci    "--node",
6988c88e8eSopenharmony_ci    rebase_path(nodejs_path, root_build_dir),
7088c88e8eSopenharmony_ci    "--babel-js",
7188c88e8eSopenharmony_ci    rebase_path(_babel_js, root_build_dir),
7288c88e8eSopenharmony_ci    "--weex-loader-src-dir",
7388c88e8eSopenharmony_ci    rebase_path("src", root_build_dir),
7488c88e8eSopenharmony_ci    "--babel-config-js",
7588c88e8eSopenharmony_ci    rebase_path(_babel_config_js, root_build_dir),
7688c88e8eSopenharmony_ci    "--module-source-js",
7788c88e8eSopenharmony_ci    rebase_path(_module_source_js, root_build_dir),
7888c88e8eSopenharmony_ci    "--uglify-source-js",
7988c88e8eSopenharmony_ci    rebase_path(_uglify_source_js, root_build_dir),
8088c88e8eSopenharmony_ci    "--output-dir",
8188c88e8eSopenharmony_ci    rebase_path(weex_loader_lib_dir, root_build_dir),
8288c88e8eSopenharmony_ci  ]
8388c88e8eSopenharmony_ci}
8488c88e8eSopenharmony_ci
8588c88e8eSopenharmony_ciohos_copy("weex_loader") {
8688c88e8eSopenharmony_ci  deps = [
8788c88e8eSopenharmony_ci    ":build_weex_loader_library",
8888c88e8eSopenharmony_ci    ":scripter",
8988c88e8eSopenharmony_ci    ":styler",
9088c88e8eSopenharmony_ci  ]
9188c88e8eSopenharmony_ci  sources = weex_loader_files_set
9288c88e8eSopenharmony_ci  outputs = [ target_out_dir + "/$target_name/{{source_file_part}}" ]
9388c88e8eSopenharmony_ci  module_source_dir = target_out_dir + "/$target_name/"
9488c88e8eSopenharmony_ci  module_install_name = ""
9588c88e8eSopenharmony_ci  part_name = "weex-loader"
9688c88e8eSopenharmony_ci  subsystem_name = "thirdparty"
9788c88e8eSopenharmony_ci  license_file = "//third_party/weex-loader/LICENSE"
9888c88e8eSopenharmony_ci}
9988c88e8eSopenharmony_ci
10088c88e8eSopenharmony_ciohos_copy("scripter") {
10188c88e8eSopenharmony_ci  deps = [ ":build_weex_loader_library" ]
10288c88e8eSopenharmony_ci  sources = [ weex_loader_lib_dir + "/scripter" ]
10388c88e8eSopenharmony_ci  outputs = [ target_out_dir + "/$target_name" ]
10488c88e8eSopenharmony_ci  part_name = "weex-loader"
10588c88e8eSopenharmony_ci  subsystem_name = "thirdparty"
10688c88e8eSopenharmony_ci  license_file = "//third_party/weex-loader/LICENSE"
10788c88e8eSopenharmony_ci}
10888c88e8eSopenharmony_ci
10988c88e8eSopenharmony_ciohos_copy("styler") {
11088c88e8eSopenharmony_ci  deps = [ ":build_weex_loader_library" ]
11188c88e8eSopenharmony_ci  sources = [ weex_loader_lib_dir + "/styler" ]
11288c88e8eSopenharmony_ci  outputs = [ target_out_dir + "/$target_name" ]
11388c88e8eSopenharmony_ci  part_name = "weex-loader"
11488c88e8eSopenharmony_ci  subsystem_name = "thirdparty"
11588c88e8eSopenharmony_ci  license_file = "//third_party/weex-loader/LICENSE"
11688c88e8eSopenharmony_ci}
11788c88e8eSopenharmony_ci
11888c88e8eSopenharmony_ciace_loader_ark_dir = get_label_info("//developtools/ace_js2bundle:ace_loader",
11988c88e8eSopenharmony_ci                                    "target_out_dir") + "/ace_loader_ark"
12088c88e8eSopenharmony_ci
12188c88e8eSopenharmony_ciohos_copy("weex_loader_ark_hap") {
12288c88e8eSopenharmony_ci  deps = [
12388c88e8eSopenharmony_ci    ":build_weex_loader_library",
12488c88e8eSopenharmony_ci    ":weex_loader",
12588c88e8eSopenharmony_ci    ":weex_scripter_ark_hap",
12688c88e8eSopenharmony_ci    ":weex_styler_ark_hap",
12788c88e8eSopenharmony_ci    "//developtools/ace_js2bundle:ace_loader_ark_hap",
12888c88e8eSopenharmony_ci  ]
12988c88e8eSopenharmony_ci  sources = weex_loader_files_set
13088c88e8eSopenharmony_ci  outputs = [ ace_loader_ark_dir + "/lib/{{source_file_part}}" ]
13188c88e8eSopenharmony_ci}
13288c88e8eSopenharmony_ci
13388c88e8eSopenharmony_ciohos_copy("weex_scripter_ark_hap") {
13488c88e8eSopenharmony_ci  deps = [
13588c88e8eSopenharmony_ci    ":build_weex_loader_library",
13688c88e8eSopenharmony_ci    ":weex_loader",
13788c88e8eSopenharmony_ci    "//developtools/ace_js2bundle:ace_loader_ark_hap",
13888c88e8eSopenharmony_ci  ]
13988c88e8eSopenharmony_ci  sources = [ weex_loader_lib_dir + "/scripter" ]
14088c88e8eSopenharmony_ci  outputs = [ ace_loader_ark_dir + "/lib/scripter" ]
14188c88e8eSopenharmony_ci}
14288c88e8eSopenharmony_ci
14388c88e8eSopenharmony_ciohos_copy("weex_styler_ark_hap") {
14488c88e8eSopenharmony_ci  deps = [
14588c88e8eSopenharmony_ci    ":build_weex_loader_library",
14688c88e8eSopenharmony_ci    ":weex_loader",
14788c88e8eSopenharmony_ci    "//developtools/ace_js2bundle:ace_loader_ark_hap",
14888c88e8eSopenharmony_ci  ]
14988c88e8eSopenharmony_ci  sources = [ weex_loader_lib_dir + "/styler" ]
15088c88e8eSopenharmony_ci  outputs = [ ace_loader_ark_dir + "/lib/styler" ]
15188c88e8eSopenharmony_ci}
152