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