# Copyright (c) 2021 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import("//arkcompiler/ets_runtime/js_runtime_config.gni")
declare_args() {
skip_gen_stub = false
}
_timeout_ = 14400
config("include_maple") {
include_dirs = [
"${MAPLEALL_ROOT}/maple_be/include/cg",
"${MAPLEALL_ROOT}/maple_be/include/litecg",
"${MAPLEALL_ROOT}/maple_be/cg/aarch64",
"${MAPLEALL_ROOT}/maple_be/include/ad",
"${MAPLEALL_ROOT}/maple_be/include/ad/target",
"${MAPLEALL_ROOT}/maple_be/include/be/aarch64",
"${MAPLEALL_ROOT}/maple_be/include/be",
"${MAPLEALL_ROOT}/maple_driver/include",
"${MAPLEALL_ROOT}/maple_driver/defs",
"${MAPLEALL_ROOT}/maple_driver/defs/default",
"${MAPLEALL_ROOT}/maple_util/include",
"${MAPLEALL_ROOT}/mpl2mpl/include",
"${MAPLEALL_ROOT}/mempool/include",
"${MAPLEALL_ROOT}/maple_phase/include",
"${MAPLEALL_ROOT}/maple_ir/include",
"${MAPLEALL_ROOT}/maple_me/include",
]
cflags_cc = [ "-Wno-gnu-zero-variadic-macro-arguments" ]
}
libark_jsoptimizer_sources = [
"access_object_stub_builder.cpp",
"aot_compilation_env.cpp",
"aot_compiler_preprocessor.cpp",
"aot_compiler_stats.cpp",
"argument_accessor.cpp",
"array_bounds_check_elimination.cpp",
"assembler/aarch64/assembler_aarch64.cpp",
"assembler/aarch64/extend_assembler.cpp",
"assembler/aarch64/macro_assembler_aarch64.cpp",
"assembler/x64/assembler_x64.cpp",
"assembler/x64/extended_assembler_x64.cpp",
"assembler/x64/macro_assembler_x64.cpp",
"assembler_module.cpp",
"async_function_lowering.cpp",
"barrier_stub_builder.cpp",
"base/depend_chain_helper.cpp",
"baseline/baseline_assembler.cpp",
"baseline/baseline_call_signature.cpp",
"baseline/baseline_compiler.cpp",
"baseline/baseline_stubs.cpp",
"bc_call_signature.cpp",
"builtins/builtins_array_indexof_stub_builder.cpp",
"builtins/builtins_array_stub_builder.cpp",
"builtins/builtins_array_stub_builder_next_optimization.cpp",
"builtins/builtins_arraybuffer_stub_builder.cpp",
"builtins/builtins_call_signature.cpp",
"builtins/builtins_collator_stub_builder.cpp",
"builtins/builtins_collection_iterator_stub_builder.cpp",
"builtins/builtins_collection_stub_builder.cpp",
"builtins/builtins_dataview_stub_builder.cpp",
"builtins/builtins_function_stub_builder.cpp",
"builtins/builtins_number_stub_builder.cpp",
"builtins/builtins_object_stub_builder.cpp",
"builtins/builtins_proxy_stub_builder.cpp",
"builtins/builtins_reflect_stub_builder.cpp",
"builtins/builtins_regexp_stub_builder.cpp",
"builtins/builtins_shared_array_indexof_stub_builder.cpp",
"builtins/builtins_shared_array_stub_builder.cpp",
"builtins/builtins_shared_map_stub_builder.cpp",
"builtins/builtins_string_stub_builder.cpp",
"builtins/builtins_stubs.cpp",
"builtins/builtins_typedarray_stub_builder.cpp",
"builtins/containers_arraylist_stub_builder.cpp",
"builtins/containers_deque_stub_builder.cpp",
"builtins/containers_hashmap_stub_builder.cpp",
"builtins/containers_hashset_stub_builder.cpp",
"builtins/containers_lightweightmap_stub_builder.cpp",
"builtins/containers_lightweightset_stub_builder.cpp",
"builtins/containers_linkedlist_stub_builder.cpp",
"builtins/containers_list_stub_builder.cpp",
"builtins/containers_plainarray_stub_builder.cpp",
"builtins/containers_queue_stub_builder.cpp",
"builtins/containers_stack_stub_builder.cpp",
"builtins/containers_stub_builder.cpp",
"builtins/containers_vector_stub_builder.cpp",
"builtins/linked_hashtable_stub_builder.cpp",
"builtins_lowering.cpp",
"bytecode_circuit_builder.cpp",
"bytecode_info_collector.cpp",
"bytecodes.cpp",
"call_signature.cpp",
"call_stub_builder.cpp",
"circuit.cpp",
"circuit_builder.cpp",
"circuit_builder_helper.cpp",
"codegen/llvm/aarch64/aarch64_builder.cpp",
"codegen/llvm/llvm_codegen.cpp",
"codegen/llvm/llvm_ir_builder.cpp",
"codegen/llvm/x64/x64_builder.cpp",
"combined_pass_visitor.cpp",
"common_stubs.cpp",
"compilation_driver.cpp",
"compilation_env.cpp",
"compiler_log.cpp",
"constant_folding.cpp",
"dead_code_elimination.cpp",
"debug_info.cpp",
"early_elimination.cpp",
"escape_analysis.cpp",
"escape_analysis_editor.cpp",
"file_generators.cpp",
"frame_states.cpp",
"gate.cpp",
"gate_accessor.cpp",
"graph_editor.cpp",
"graph_linearizer.cpp",
"hash_stub_builder.cpp",
"hcr_circuit_builder.cpp",
"hcr_gate_meta_data.cpp",
"ic_stub_builder.cpp",
"induction_variable_analysis.cpp",
"instruction_combine.cpp",
"interpreter_stub.cpp",
"ir_builder.cpp",
"ir_module.cpp",
"jit_compilation_env.cpp",
"jit_compiler.cpp",
"later_elimination.cpp",
"lcr_circuit_builder.cpp",
"lcr_gate_meta_data.cpp",
"lexical_env_specialization_pass.cpp",
"loop_analysis.cpp",
"loop_peeling.cpp",
"mcr_circuit_builder.cpp",
"mcr_gate_meta_data.cpp",
"mcr_lowering.cpp",
"native_inline_lowering.cpp",
"new_object_stub_builder.cpp",
"ntype_bytecode_lowering.cpp",
"ntype_hcr_lowering.cpp",
"number_speculative_lowering.cpp",
"number_speculative_retype.cpp",
"number_speculative_runner.cpp",
"object_operator_stub_builder.cpp",
"operations_stub_builder.cpp",
"pass_manager.cpp",
"post_schedule.cpp",
"precompile_checker.cpp",
"profiler_stub_builder.cpp",
"range_analysis.cpp",
"range_guard.cpp",
"rt_call_signature.cpp",
"scheduler.cpp",
"share_gate_meta_data.cpp",
"slowpath_lowering.cpp",
"state_split_linearizer.cpp",
"string_builder_optimizer.cpp",
"stub.cpp",
"stub_builder.cpp",
"trampoline/aarch64/asm_interpreter_call.cpp",
"trampoline/aarch64/baseline_call.cpp",
"trampoline/aarch64/common_call.cpp",
"trampoline/aarch64/optimized_call.cpp",
"trampoline/aarch64/optimized_fast_call.cpp",
"trampoline/x64/asm_interpreter_call.cpp",
"trampoline/x64/baseline_call.cpp",
"trampoline/x64/common_call.cpp",
"trampoline/x64/optimized_call.cpp",
"trampoline/x64/optimized_fast_call.cpp",
"ts_hcr_opt_pass.cpp",
"ts_inline_lowering.cpp",
"type.cpp",
"type_inference/pgo_type_infer.cpp",
"type_info_accessors.cpp",
"typed_bytecode_lowering.cpp",
"typed_hcr_lowering.cpp",
"typed_native_inline_lowering.cpp",
"useless_gate_elimination.cpp",
"value_numbering.cpp",
"verifier.cpp",
]
if (ets_runtime_enable_ark_steed) {
libark_jsoptimizer_sources += [
"trampoline/aarch64/arksteed_call.cpp",
"trampoline/x64/arksteed_call.cpp",
"${ARK_STEED_ROOT}/arksteed_assembler.cpp",
"${ARK_STEED_ROOT}/arksteed_access_info_factory.cpp",
"${ARK_STEED_ROOT}/arksteed_feedback_reader.cpp",
"${ARK_STEED_ROOT}/arksteed_heap_broker.cpp",
"${ARK_STEED_ROOT}/arksteed_bb.cpp",
"${ARK_STEED_ROOT}/arksteed_bytecode_analysis.cpp",
"${ARK_STEED_ROOT}/arksteed_bytecode_analysis_new.cpp",
"${ARK_STEED_ROOT}/arksteed_bytecode_context.cpp",
"${ARK_STEED_ROOT}/arksteed_bytecode_liveness.cpp",
"${ARK_STEED_ROOT}/arksteed_bytecode_preprocessor.cpp",
"${ARK_STEED_ROOT}/arksteed_bytecode_preprocessor_new.cpp",
"${ARK_STEED_ROOT}/arksteed_comment.cpp",
"${ARK_STEED_ROOT}/arksteed_codegen.cpp",
"${ARK_STEED_ROOT}/arksteed_compiler.cpp",
"${ARK_STEED_ROOT}/arksteed_disassembler.cpp",
"${ARK_STEED_ROOT}/arksteed_graph_builder.cpp",
"${ARK_STEED_ROOT}/arksteed_graph_builder_new.cpp",
"${ARK_STEED_ROOT}/arksteed_graph_printer.cpp",
"${ARK_STEED_ROOT}/arksteed_graph_labeller.cpp",
"${ARK_STEED_ROOT}/arksteed_opcode.cpp",
"${ARK_STEED_ROOT}/arksteed_vertex.cpp",
"${ARK_STEED_ROOT}/arksteed_framestate.cpp",
"${ARK_STEED_ROOT}/arksteed_regalloc.cpp",
"${ARK_STEED_ROOT}/arksteed_regalloc_types.cpp",
]
# Platform-specific ArkSteed assembler implementations
if (current_cpu == "amd64" || current_cpu == "x64" || current_cpu == "x86_64") {
libark_jsoptimizer_sources += [
"${ARK_STEED_ROOT}/arch/x64/arksteed_assembler_x64.cpp",
]
} else if (current_cpu == "arm64") {
libark_jsoptimizer_sources += [
"${ARK_STEED_ROOT}/arch/arm64/arksteed_assembler_arm64.cpp",
]
}
}
config("libark_jsoptimizer_set_config") {
# Setting up IS_RELEASE_VERSION if compiling as release version
if (build_variant == "user") {
cflags_c = [ "-DIS_RELEASE_VERSION" ]
cflags_cc = [ "-DIS_RELEASE_VERSION" ]
}
libs = []
if (is_mingw) {
libs += [
"kernel32",
"shell32",
"uuid",
"advapi32",
"msvcrt",
"msvcrt-os",
"windowsapp",
]
}
}
ohos_source_set("libark_jsoptimizer_set") {
stack_protector_ret = false
sources = libark_jsoptimizer_sources
if (enable_local_code_sign) {
sources += [ "$js_root/ecmascript/platform/unix/ohos/code_sign.cpp" ]
} else if (is_mingw) {
sources += [ "$js_root/ecmascript/platform/windows/code_sign.cpp" ]
} else {
sources += [ "$js_root/ecmascript/platform/unix/code_sign.cpp" ]
}
public_configs = [
"$js_root:include_llvm",
"$js_root:ark_jsruntime_compiler_config",
"$js_root:ark_jsruntime_public_config",
":libark_jsoptimizer_set_config",
]
external_deps = [ "zlib:libz" ]
deps = []
if (!is_arkui_x) {
external_deps += [ "runtime_core:arkfile_header_deps" ]
} else {
deps += [ "$ark_root/libpandafile:arkfile_header_deps" ]
}
deps += [ "${LLVM_LIB_ROOT}:libark_llvmcodegen_set" ]
# hiviewdfx libraries
external_deps += hiviewdfx_ext_deps
deps += hiviewdfx_deps
defines = []
if (ets_runtime_enable_ark_steed) {
defines += [ "ECMASCRIPT_ENABLE_ARK_STEED_GN" ]
}
# init library for parameters.h
if (!ark_standalone_build && !(defined(is_arkui_x) && is_arkui_x) &&
is_ohos && is_standard_system) {
external_deps += [ "init:libbegetutil" ]
defines += [ "ENABLE_OHOS_PARAMETER" ]
}
if (defined(ohos_indep_compiler_enable) && ohos_indep_compiler_enable) {
external_deps += [
"icu:shared_icuuc",
sdk_libc_secshared_dep,
]
}
part_name = "ets_runtime"
subsystem_name = "arkcompiler"
}
config("enable_maple_config") {
cflags_cc = [ "-DCOMPILE_MAPLE" ]
cflags_c = [ "-DCOMPILE_MAPLE" ]
}
ohos_source_set("libark_jsoptimizer_set_with_maple") {
stack_protector_ret = false
if (enable_sanitize) {
sanitize = {
cfi = true
cfi_cross_dso = true
debug = false
}
branch_protector_ret = "pac_ret"
}
cflags_cc = [ "-fvisibility=hidden" ]
sources = libark_jsoptimizer_sources
if (enable_local_code_sign) {
sources += [ "$js_root/ecmascript/platform/unix/ohos/code_sign.cpp" ]
} else if (is_mingw) {
sources += [ "$js_root/ecmascript/platform/windows/code_sign.cpp" ]
} else {
sources += [ "$js_root/ecmascript/platform/unix/code_sign.cpp" ]
}
if (enable_jit_code_sign) {
sources += [ "$js_root/ecmascript/compiler/jit_signcode.cpp" ]
}
sources += [
"codegen/maple/litecg_codegen.cpp",
"codegen/maple/litecg_ir_builder.cpp",
]
public_configs = [
"$js_root:include_llvm",
":include_maple",
"$js_root:ark_jsruntime_compiler_config",
"$js_root:ark_jsruntime_public_config",
":libark_jsoptimizer_set_config",
":enable_maple_config",
]
defines = []
if (ets_runtime_enable_ark_steed) {
defines += [ "ECMASCRIPT_ENABLE_ARK_STEED_GN" ]
}
external_deps = [ "zlib:libz" ]
if (enable_jit_code_sign) {
defines += [ "JIT_ENABLE_CODE_SIGN" ]
external_deps += [ "code_signature:libjit_code_sign" ]
if (disable_fort_switch) {
defines += [ "JIT_FORT_DISABLE" ]
}
}
if (enable_litecg_emit) {
defines += [ "ARK_LITECG_DEBUG" ]
}
deps = []
if (is_ohos) {
deps += [ "${LLVM_LIB_ROOT}:libark_llvmcodegen" ]
} else {
deps += [ "${LLVM_LIB_ROOT}:libark_llvmcodegen_set" ]
}
if (!is_arkui_x) {
external_deps += [ "runtime_core:arkfile_header_deps" ]
} else {
deps += [ "$ark_root/libpandafile:arkfile_header_deps" ]
}
# hiviewdfx libraries
external_deps += hiviewdfx_ext_deps
# init library for parameters.h
if (!ark_standalone_build && !(defined(is_arkui_x) && is_arkui_x) &&
is_ohos && is_standard_system) {
external_deps += [ "init:libbegetutil" ]
defines += [ "ENABLE_OHOS_PARAMETER" ]
}
if (defined(ohos_indep_compiler_enable) && ohos_indep_compiler_enable) {
external_deps += [
"icu:shared_icuuc",
sdk_libc_secshared_dep,
]
}
part_name = "ets_runtime"
subsystem_name = "arkcompiler"
}
ohos_source_set("libark_stub_set") {
stack_protector_ret = false
if (enable_sanitize) {
sanitize = {
ubsan = true
}
}
deps = [ ":build_stub_to_cpp" ]
sources = [ "$root_gen_dir/arkcompiler/ets_runtime/stub_an.cpp" ]
public_configs = [
"$js_root:ark_jsruntime_common_config",
"$js_root:ark_jsruntime_public_config",
]
part_name = "ets_runtime"
subsystem_name = "arkcompiler"
}
ohos_source_set("libark_mock_stub_set") {
stack_protector_ret = false
sources = [ "mock/mock_stub_an.cpp" ]
public_configs = [
"$js_root:ark_jsruntime_common_config",
"$js_root:ark_jsruntime_public_config",
]
}
ohos_shared_library("libark_jsoptimizer") {
stack_protector_ret = false
if (enable_sanitize) {
sanitize = {
cfi = true
cfi_cross_dso = true
debug = false
ubsan = true
}
branch_protector_ret = "pac_ret"
}
deps = [
":libark_jsoptimizer_set_with_maple",
"$js_root:libark_jsruntime",
"${MAPLEALL_ROOT}/maple_be:libcg",
]
external_deps = [ "bounds_checking_function:libsec_shared" ]
if (!is_arkui_x) {
external_deps += [ "runtime_core:libarkfile_static" ]
} else {
deps += [ "$ark_root/libpandafile:libarkfile_static" ]
}
defines = []
if (run_with_asan) {
defines = [ "RUN_WITH_ASAN" ]
}
if (enable_jit_code_sign) {
defines += [ "JIT_ENABLE_CODE_SIGN" ]
}
if (enable_hilog) {
external_deps += [ "hilog:libhilog" ]
}
install_enable = true
if (!is_mingw && !is_mac) {
output_extension = "so"
}
part_name = "ets_runtime"
subsystem_name = "arkcompiler"
}
ohos_executable("ark_stub_compiler") {
sources = [ "stub_compiler.cpp" ]
include_dirs = [ "$target_gen_dir" ]
configs = [
"$js_root:include_llvm",
"$js_root:ark_jsruntime_compiler_config",
"$js_root:ark_jsruntime_public_config",
]
deps = [
":libark_jsoptimizer_set",
":libark_mock_stub_set",
"$js_root:libark_js_intl_set",
"$js_root:libark_jsruntime_set",
"$js_root:libcommon_components_set",
]
deps += [ "$js_root:libcommon_components_set" ]
external_deps = [ "zlib:libz" ]
external_deps += hiviewdfx_ext_deps
if (!is_arkui_x) {
external_deps += [ "runtime_core:libarkfile_static" ]
} else {
deps += [ "$ark_root/libpandafile:libarkfile_static" ]
}
if (!ark_standalone_build && host_os != "mac") {
ldflags = [ "-Wl,--lto-O0" ]
}
if (run_with_asan) {
defines = [ "RUN_WITH_ASAN" ]
}
if (defined(is_arkui_x) && is_arkui_x) {
deps += [
"$ark_third_party_root/icu/icu4c:static_icui18n",
"$ark_third_party_root/icu/icu4c:static_icuuc",
]
} else {
external_deps += [
"icu:shared_icui18n",
"icu:shared_icuuc",
]
}
if (defined(ohos_indep_compiler_enable) && ohos_indep_compiler_enable) {
external_deps += [
"runtime_core:libarkbase_static",
"runtime_core:libarkziparchive_static",
sdk_libc_secshared_dep,
]
}
install_enable = false
part_name = "ets_runtime"
subsystem_name = "arkcompiler"
}
ohos_executable("ark_aot_compiler") {
if (enable_sanitize) {
sanitize = {
ubsan = true
}
}
sources = [ "aot_compiler.cpp" ]
configs = [
"$js_root:include_llvm",
":include_maple",
"$js_root:ark_jsruntime_compiler_config",
"$js_root:ark_jsruntime_public_config",
]
deps = [ ":libark_mock_stub_set" ]
if (is_ohos) {
deps += [
":libark_jsoptimizer",
"$js_root:libark_jsruntime",
]
} else {
deps += [
":libark_jsoptimizer_set_with_maple",
"$js_root:libark_js_intl_set",
"$js_root:libark_jsruntime_set",
"$js_root:libcommon_components_set",
"${MAPLEALL_ROOT}/maple_be:libcg",
]
}
external_deps = [ "zlib:libz" ]
if (!is_arkui_x) {
external_deps += [
"runtime_core:arkfile_header_deps",
"runtime_core:libarkbase_static",
"runtime_core:libarkfile_static",
]
} else {
deps += [
"$ark_root/libpandabase:libarkbase_static",
"$ark_root/libpandafile:arkfile_header_deps",
"$ark_root/libpandafile:libarkfile_static",
]
}
if (defined(is_arkui_x) && is_arkui_x) {
deps += [
"$ark_third_party_root/icu/icu4c:static_icui18n",
"$ark_third_party_root/icu/icu4c:static_icuuc",
]
} else {
external_deps += [
"icu:shared_icui18n",
"icu:shared_icuuc",
]
}
if (ark_js_hybrid) {
if (!is_arkui_x) {
external_deps += [ "runtime_core:libarkplatform" ]
} else {
deps += [ "$arkplatform_root:libarkplatform" ]
}
}
# hiviewdfx libraries
external_deps += hiviewdfx_ext_deps
deps += hiviewdfx_deps
install_enable = true
if (defined(ohos_indep_compiler_enable) && ohos_indep_compiler_enable) {
external_deps += [
"runtime_core:libarkziparchive_static",
sdk_libc_secshared_dep,
]
}
part_name = "ets_runtime"
subsystem_name = "arkcompiler"
}
action("gen_stub_file") {
script = "$js_root/script/run_ark_executable.py"
deps = [ "$js_root/ecmascript/compiler:ark_stub_compiler(${host_toolchain})" ]
stub_file_gen_dir = "$root_gen_dir/arkcompiler/ets_runtime"
root_out_dir_with_host_toolchain =
get_label_info(":ark_stub_compiler(${host_toolchain})", "root_out_dir")
if (current_os == "linux" && current_cpu == "arm64") {
stub_option =
" --stub-file=" + rebase_path(stub_file_gen_dir) + "/stub.an" +
" --compiler-target-triple=aarch64-unknown-linux-gnu" +
" --compiler-log=allasm" + " --log-level=info"
} else if (current_toolchain == host_toolchain) {
stub_option = " --stub-file=" + rebase_path(stub_file_gen_dir) + "/stub.an"
} else if (current_cpu == "x86_64") {
stub_option =
" --stub-file=" + rebase_path(stub_file_gen_dir) + "/stub.an" +
" --compiler-target-triple=x86_64-unknown-linux-gnu"
} else {
stub_option =
" --stub-file=" + rebase_path(stub_file_gen_dir) + "/stub.an" +
" --compiler-target-triple=aarch64-unknown-linux-gnu" +
" --compiler-log=allasm" + " --log-level=info"
}
stub_option += " --enable-force-gc=false"
if (host_cpu == "arm64") {
llvm_lib_dir = "//prebuilts/clang/ohos/linux-aarch64/llvm/lib/"
} else {
llvm_lib_dir = "//prebuilts/clang/ohos/linux-x86_64/llvm/lib/"
}
args = [
"--script-file",
rebase_path(root_out_dir_with_host_toolchain) +
"/arkcompiler/ets_runtime/ark_stub_compiler",
"--script-options",
stub_option,
"--expect-output",
"0",
"--timeout-limit",
"${_timeout_}",
]
if (defined(ohos_indep_compiler_enable) && ohos_indep_compiler_enable) {
args += [
"--env-path",
rebase_path("//binarys/arkcompiler/runtime_core/") + ":" +
rebase_path("//binarys/arkcompiler/ets_frontend/") + ":" +
rebase_path("//binarys/arkcompiler/ets_runtime/") + ":" + rebase_path(
"//binarys/arkcompiler/runtime_core/innerapis/libarkziparchive_static/clang_x64/libs") + ":" + rebase_path(
"//binarys/third_party/icu/innerapis/shared_icuuc/clang_x64/libs") + ":" + rebase_path(
"//binarys/third_party/icu/innerapis/shared_icui18n/clang_x64/libs") + ":" + rebase_path(
"//binarys/third_party/zlib/innerapis/shared_libz/clang_x64/libs") + ":" + rebase_path(
"//binarys/third_party/bounds_checking_function/innerapis/libsec_shared/clang_x64/libs"),
]
not_needed([ "llvm_lib_dir" ])
} else {
args += [
"--env-path",
rebase_path(root_out_dir_with_host_toolchain) +
"/arkcompiler/ets_runtime:" +
rebase_path(root_out_dir_with_host_toolchain) +
"/arkcompiler/runtime_core:" +
rebase_path(root_out_dir_with_host_toolchain) +
"/${icu_subsystem_name}/${icu_part_name}:" +
rebase_path(root_out_dir_with_host_toolchain) + "/thirdparty/zlib:" +
rebase_path(root_out_dir_with_host_toolchain) +
"/hmosbundlemanager/zlib_override:" +
rebase_path(root_out_dir_with_host_toolchain) +
"/resourceschedule/frame_aware_sched:" +
rebase_path(root_out_dir_with_host_toolchain) + "/hiviewdfx/hilog:" +
rebase_path(root_out_dir_with_host_toolchain) +
"/thirdparty/bounds_checking_function:" + rebase_path(llvm_lib_dir),
]
}
# Use with caution. It can only be used when the IR(stub.an) logic is not modified.
if (skip_gen_stub) {
args += [
"--skip",
"true",
]
}
outputs = [ "$stub_file_gen_dir/stub.an" ]
if (is_ohos) {
outputs += [ "$stub_file_gen_dir/stub_code_comment.zip" ]
}
}
ohos_prebuilt_shared_library("stub.an") {
deps = [ ":gen_stub_file" ]
source = "$root_gen_dir/arkcompiler/ets_runtime/stub.an"
relative_install_dir = arkcompiler_relative_lib_path
part_name = "ets_runtime"
subsystem_name = "arkcompiler"
}
action("build_stub_to_cpp") {
sources = [ "$root_gen_dir/arkcompiler/ets_runtime/stub.an" ]
script = "$js_root/script/build_resource_to_cpp.py"
deps = [ ":gen_stub_file" ]
args = [
"--input",
rebase_path("$root_gen_dir/arkcompiler/ets_runtime/stub.an"),
"--output",
rebase_path("$root_gen_dir/arkcompiler/ets_runtime/stub_an.cpp"),
]
outputs = [ "$root_gen_dir/arkcompiler/ets_runtime/stub_an.cpp" ]
}