• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2023 Huawei Device Co., Ltd.
2# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at
5#
6#     http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13
14import("//build/ohos.gni")
15import("//foundation/arkui/ace_engine/ace_config.gni")
16
17prebuilt_js_api_mock_path =
18    get_label_info(":gen_snapshot_jsmock", "target_out_dir") +
19    "/dist/jsMockSystemPlugin.js"
20
21mock_root = "."
22
23action("gen_node_modules") {
24  script = "./prebuild_env.sh"
25  args = []
26  inputs = [
27    "package.json",
28    "package-lock.json",
29  ]
30  outputs = [ "$root_out_dir/automock/node_modules" ]
31}
32
33action("gen_snapshot_jsmock") {
34  script = "$mock_root/js_framework_build.sh"
35  js_framework = "//third_party/jsframework/runtime"
36  js_framework_mock_generate = "$mock_root/mock-generate"
37  is_mac = "false"
38  is_preview_engine = "false"
39  if (use_mingw_win || use_mac || use_linux) {
40    is_preview_engine = "true"
41  }
42  use_mac = host_os == "mac"
43
44  if (is_standard_system || is_cross_platform_build) {
45    node_modules =
46        "//prebuilts/build-tools/common/automock/mock-generate/node_modules"
47    if (use_mac) {
48      nodejs_path =
49          "//prebuilts/build-tools/common/nodejs/node-v12.18.4-darwin-x64"
50      is_mac = "true"
51    } else {
52      nodejs_path =
53          "//prebuilts/build-tools/common/nodejs/node-v12.18.4-linux-x64"
54      is_mac = "false"
55    }
56  } else {
57    node_modules = "//prebuilts/ace-toolkit/automock/mock-generate/node_modules"
58    if (use_mac) {
59      nodejs_path = "//prebuilts/ace-toolkit/nodejs/node-v12.18.4-darwin-x64"
60      is_mac = "true"
61    } else {
62      nodejs_path = "//prebuilts/ace-toolkit/nodejs/node-v12.18.4-linux-x64"
63      is_mac = "false"
64    }
65  }
66
67  buildfile_jsmock = "$mock_root/build_jsmock_system_plugin.js"
68
69  #buildfile_native_min = "$mock_root/build_strip_native_min.js"
70
71  package_file = "$mock_root/mock-generate/package.json"
72  tsconfig = "$mock_root/mock-generate/tsconfig.json"
73  eslint = "$mock_root/mock-generate/.eslintrc"
74  css_what = "//third_party/css-what"
75
76  args = [
77    rebase_path(buildfile_jsmock, root_build_dir),
78    rebase_path(nodejs_path, root_build_dir),
79    rebase_path(js_framework, root_build_dir),
80    rebase_path(node_modules, root_build_dir),
81    rebase_path(package_file, root_build_dir),
82    rebase_path(tsconfig, root_build_dir),
83    rebase_path(eslint, root_build_dir),
84    rebase_path(target_out_dir, root_build_dir),
85    is_mac,
86    rebase_path("//prebuilts", root_build_dir),
87    rebase_path(css_what, root_build_dir),
88    rebase_path(js_framework_mock_generate, root_build_dir),
89    is_preview_engine,
90  ]
91
92  inputs = [
93    # config of compiler
94    "./mock-generate/.eslintrc",
95    "build_jsmock_system_plugin.js",
96    "./mock-generate/tsconfig.json",
97  ]
98  outputs = [ prebuilt_js_api_mock_path ]
99}
100