houhaoyu 63e3592969 houhaoyu@huawei.com
Signed-off-by: houhaoyu <houhaoyu@huawei.com>
Change-Id: I85b8d52735994822082b14544e9139b8b9598579
2021-10-15 09:27:21 +08:00

126 lines
4.2 KiB
Plaintext

# Copyright (c) Huawei Technologies Co., Ltd. 2021-2021. All rights reserved.
import("//build/ohos.gni")
import("//build/ohos/ace/ace.gni")
import("//foundation/ace/ace_engine/ace_config.gni")
ets_loader_lib_dir =
get_label_info(":build_ets_loader_library", "target_out_dir") + "/lib"
ets_loader_peg_dir =
get_label_info(":build_ets_loader_library", "target_out_dir") + "/peg_parser/dist"
ets_loader_declarations_dir = get_label_info(":build_ets_loader_library",
"target_out_dir") + "/declarations"
ets_loader_component_config_file =
get_label_info(":build_ets_loader_library", "target_out_dir") +
"/component_config.json"
action("build_ets_loader_library") {
script = "//developtools/ace-ets2bundle/build_ets_loader_library.py"
depfile = "$target_gen_dir/$target_name.d"
outputs = [
ets_loader_lib_dir,
ets_loader_peg_dir,
ets_loader_declarations_dir,
ets_loader_component_config_file,
]
_ets_loader_dir = "//developtools/ace-ets2bundle/compiler"
_declarations_file_dir = "//interface/sdk-js/api/@internal/component/ets"
_babel_js = _ets_loader_dir + "/node_modules/@babel/cli/bin/babel.js"
_babel_config_js = _ets_loader_dir + "/babel.config.js"
_uglify_source_js = _ets_loader_dir + "/uglify-source.js"
_build_peg_js = _ets_loader_dir + "/build_peg.js"
_build_declarations_file_js = _ets_loader_dir + "/build_declarations_file.js"
inputs = [
_babel_config_js,
_babel_js,
_uglify_source_js,
_build_peg_js,
_build_declarations_file_js,
]
# different host platform nodejs tool directory
if (host_os == "linux") {
nodejs_path =
"//prebuilts/build-tools/common/nodejs/node-v12.18.4-linux-x64/bin/node"
} else if (host_os == "mac") {
nodejs_path =
"//prebuilts/build-tools/common/nodejs/node-v12.18.4-darwin-x64/bin/node"
} else {
assert(false, "Unsupported host_os: $host_os")
}
args = [
"--depfile",
rebase_path(depfile, root_build_dir),
"--node",
rebase_path(nodejs_path, root_build_dir),
"--babel-js",
rebase_path(_babel_js, root_build_dir),
"--ets-loader-src-dir",
rebase_path(_ets_loader_dir + "/src", root_build_dir),
"--ets-loader-peg-src-dir",
rebase_path(_ets_loader_dir + "/peg_parser/src", root_build_dir),
"--babel-config-js",
rebase_path(_babel_config_js, root_build_dir),
"--uglify-source-js",
rebase_path(_uglify_source_js, root_build_dir),
"--build-peg-js",
rebase_path(_build_peg_js, root_build_dir),
"--output-dir",
rebase_path(ets_loader_lib_dir, root_build_dir),
"--output-peg-dir",
rebase_path(ets_loader_peg_dir, root_build_dir),
"--declarations-file-dir",
rebase_path(_declarations_file_dir, root_build_dir),
"--build-declarations-file-js",
rebase_path(_build_declarations_file_js, root_build_dir),
"--output-declarations-dir",
rebase_path(ets_loader_declarations_dir, root_build_dir),
"--output-component-config-file",
rebase_path(ets_loader_component_config_file, root_build_dir),
]
}
ohos_copy("ets_loader") {
deps = [ ":build_ets_loader_library" ]
sources = [
"compiler/main.js",
"compiler/npm-install.js",
"compiler/package-lock.json",
"compiler/package.json",
"compiler/tsconfig.json",
"compiler/webpack.config.js",
ets_loader_component_config_file,
]
outputs = [ target_out_dir + "/$target_name/{{source_file_part}}" ]
module_source_dir = target_out_dir + "/$target_name"
module_install_name = ""
}
ohos_copy("ets_loader_library") {
deps = [ ":build_ets_loader_library" ]
sources = [ ets_loader_lib_dir ]
outputs = [ target_out_dir + "/$target_name" ]
module_source_dir = target_out_dir + "/$target_name"
module_install_name = ""
}
ohos_copy("ets_loader_peg") {
deps = [ ":build_ets_loader_library" ]
sources = [ ets_loader_peg_dir ]
outputs = [ target_out_dir + "/$target_name" ]
module_source_dir = target_out_dir + "/$target_name"
module_install_name = ""
}
ohos_copy("ets_loader_declaration") {
deps = [ ":build_ets_loader_library" ]
sources = [ ets_loader_declarations_dir ]
outputs = [ target_out_dir + "/$target_name" ]
module_source_dir = target_out_dir + "/$target_name"
module_install_name = ""
}