mirror of
https://gitee.com/openharmony/arkcompiler_ets_runtime
synced 2024-10-07 08:03:29 +00:00
0288949216
Merge pull request !8996 from Sidorov Aleksei/arkui_fix
686 lines
19 KiB
Plaintext
686 lines
19 KiB
Plaintext
# 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")
|
|
if (defined(timeout)) {
|
|
_timeout_ = timeout
|
|
} else {
|
|
_timeout_ = 1200
|
|
}
|
|
config("include_llvm") {
|
|
if (compile_llvm_online) {
|
|
include_dirs = [
|
|
"//third_party/third_party_llvm-project/build/include",
|
|
"//third_party/third_party_llvm-project/llvm/include/",
|
|
]
|
|
} else {
|
|
if (is_mingw) {
|
|
include_dirs = [
|
|
"//prebuilts/ark_tools/ark_js_prebuilts/llvm_prebuilts_windows/llvm/include",
|
|
"//prebuilts/ark_tools/ark_js_prebuilts/llvm_prebuilts_windows/build/include",
|
|
]
|
|
} else if (is_mac) {
|
|
if (host_cpu == "arm64") {
|
|
include_dirs = [
|
|
"//prebuilts/ark_tools/ark_js_prebuilts/llvm_prebuilts_darwin_arm64/llvm/include",
|
|
"//prebuilts/ark_tools/ark_js_prebuilts/llvm_prebuilts_darwin_arm64/build/include",
|
|
]
|
|
} else {
|
|
include_dirs = [
|
|
"//prebuilts/ark_tools/ark_js_prebuilts/llvm_prebuilts_darwin_x64/llvm/include",
|
|
"//prebuilts/ark_tools/ark_js_prebuilts/llvm_prebuilts_darwin_x64/build/include",
|
|
]
|
|
}
|
|
} else {
|
|
if (host_cpu == "arm64" && host_os == "linux") {
|
|
include_dirs = [
|
|
"//prebuilts/ark_tools/ark_js_prebuilts/llvm_prebuilts_linux_aarch64/llvm/include",
|
|
"//prebuilts/ark_tools/ark_js_prebuilts/llvm_prebuilts_linux_aarch64/build/include",
|
|
]
|
|
} else {
|
|
if (current_cpu == "arm64") {
|
|
include_dirs = [
|
|
"//prebuilts/ark_tools/ark_js_prebuilts/llvm_prebuilts_aarch64/llvm/include",
|
|
"//prebuilts/ark_tools/ark_js_prebuilts/llvm_prebuilts_aarch64/build/include",
|
|
]
|
|
} else {
|
|
include_dirs = [
|
|
"//prebuilts/ark_tools/ark_js_prebuilts/llvm_prebuilts/llvm/include",
|
|
"//prebuilts/ark_tools/ark_js_prebuilts/llvm_prebuilts/build/include",
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
cflags_cc = [ "-DARK_GC_SUPPORT" ]
|
|
}
|
|
|
|
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",
|
|
"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_stub_builder.cpp",
|
|
"builtins/builtins_call_signature.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_string_stub_builder.cpp",
|
|
"builtins/builtins_stubs.cpp",
|
|
"builtins/builtins_typedarray_stub_builder.cpp",
|
|
"builtins/containers_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",
|
|
"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",
|
|
]
|
|
|
|
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" ]
|
|
}
|
|
|
|
if (compile_llvm_online) {
|
|
lib_dirs = [ "//third_party/third_party_llvm-project/build/lib" ]
|
|
} else {
|
|
if (is_mingw) {
|
|
lib_dirs = [
|
|
"//prebuilts/ark_tools/ark_js_prebuilts/llvm_prebuilts_windows/build/lib",
|
|
"//prebuilts/mingw-w64/ohos/linux-x86_64/clang-mingw/x86_64-w64-mingw32",
|
|
]
|
|
} else if (is_mac) {
|
|
if (host_cpu == "arm64") {
|
|
lib_dirs = [ "//prebuilts/ark_tools/ark_js_prebuilts/llvm_prebuilts_darwin_arm64/build/lib" ]
|
|
} else {
|
|
lib_dirs = [ "//prebuilts/ark_tools/ark_js_prebuilts/llvm_prebuilts_darwin_x64/build/lib" ]
|
|
}
|
|
} else {
|
|
if (host_cpu == "arm64" && host_os == "linux") {
|
|
lib_dirs = [ "//prebuilts/ark_tools/ark_js_prebuilts/llvm_prebuilts_linux_aarch64/build/lib" ]
|
|
} else {
|
|
if (current_cpu == "arm64") {
|
|
lib_dirs = [ "//prebuilts/ark_tools/ark_js_prebuilts/llvm_prebuilts_aarch64/build/lib" ]
|
|
} else {
|
|
lib_dirs = [
|
|
"//prebuilts/ark_tools/ark_js_prebuilts/llvm_prebuilts/build/lib",
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
libs = [
|
|
"LLVMTarget",
|
|
"LLVMObject",
|
|
"LLVMMC",
|
|
"LLVMSupport",
|
|
"LLVMCore",
|
|
"LLVMExecutionEngine",
|
|
"LLVMInterpreter",
|
|
"LLVMMCJIT",
|
|
"LLVMExegesis",
|
|
"LLVMRuntimeDyld",
|
|
"LLVMInstCombine",
|
|
"LLVMAnalysis",
|
|
"LLVMScalarOpts",
|
|
"LLVMBinaryFormat",
|
|
"LLVMDebugInfoDWARF",
|
|
"LLVMRemarks",
|
|
"LLVMTextAPI",
|
|
"LLVMScalarOpts",
|
|
"LLVMTransformUtils",
|
|
"LLVMBitReader",
|
|
"LLVMAsmPrinter",
|
|
"LLVMProfileData",
|
|
"LLVMBitstreamReader",
|
|
"LLVMSelectionDAG",
|
|
"LLVMGlobalISel",
|
|
"LLVMLTO",
|
|
"LLVMCFGuard",
|
|
"LLVMVectorize",
|
|
"LLVMDemangle",
|
|
"LLVMipo",
|
|
"LLVMInstrumentation",
|
|
"LLVMDebugInfoCodeView",
|
|
"LLVMAggressiveInstCombine",
|
|
"LLVMAsmParser",
|
|
"LLVMMCParser",
|
|
"LLVMMIRParser",
|
|
"LLVMMCDisassembler",
|
|
"LLVMCodeGen",
|
|
"LLVMTransformUtils",
|
|
"LLVMIRReader",
|
|
"LLVMAArch64Utils",
|
|
"LLVMAArch64CodeGen",
|
|
"LLVMAArch64Info",
|
|
"LLVMAArch64Desc",
|
|
"LLVMAArch64Disassembler",
|
|
"LLVMAArch64AsmParser",
|
|
"LLVMFrontendOpenMP",
|
|
"LLVMBitWriter",
|
|
]
|
|
|
|
if (!is_mac && !is_ios) {
|
|
libs += [ "LLVMParts" ]
|
|
}
|
|
|
|
# Only support compiling aarch64 target at device-side(arm64 platform).
|
|
# So these os-related libs of x86 are not needed on arm64 platform.
|
|
if (is_mac || current_cpu != "arm64") {
|
|
libs += [
|
|
"LLVMX86AsmParser",
|
|
"LLVMX86CodeGen",
|
|
"LLVMX86Desc",
|
|
"LLVMX86Disassembler",
|
|
"LLVMX86Info",
|
|
]
|
|
}
|
|
|
|
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 = [
|
|
":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" ]
|
|
}
|
|
|
|
# hiviewdfx libraries
|
|
external_deps += hiviewdfx_ext_deps
|
|
deps += hiviewdfx_deps
|
|
|
|
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
|
|
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 = [
|
|
":include_llvm",
|
|
":include_maple",
|
|
"$js_root:ark_jsruntime_compiler_config",
|
|
"$js_root:ark_jsruntime_public_config",
|
|
":libark_jsoptimizer_set_config",
|
|
":enable_maple_config",
|
|
]
|
|
|
|
defines = []
|
|
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_arkui_x) {
|
|
external_deps += [ "runtime_core:arkfile_header_deps" ]
|
|
} else {
|
|
deps += [ "$ark_root/libpandafile:arkfile_header_deps" ]
|
|
}
|
|
|
|
# hiviewdfx libraries
|
|
external_deps += hiviewdfx_ext_deps
|
|
|
|
part_name = "ets_runtime"
|
|
subsystem_name = "arkcompiler"
|
|
}
|
|
|
|
ohos_source_set("libark_stub_set") {
|
|
stack_protector_ret = false
|
|
if (is_ohos && is_standard_system && current_toolchain != host_toolchain &&
|
|
!ark_standalone_build) {
|
|
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 (is_ohos && is_standard_system && current_toolchain != host_toolchain &&
|
|
!ark_standalone_build) {
|
|
sanitize = {
|
|
ubsan = true
|
|
}
|
|
}
|
|
deps = [
|
|
":libark_jsoptimizer_set_with_maple",
|
|
"$js_root:libark_jsruntime",
|
|
"${MAPLEALL_ROOT}/maple_be:libcg",
|
|
]
|
|
|
|
external_deps = [ "bounds_checking_function:libsec_shared" ]
|
|
|
|
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 = [
|
|
":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",
|
|
]
|
|
external_deps = [ "zlib:libz" ]
|
|
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",
|
|
]
|
|
}
|
|
|
|
install_enable = false
|
|
part_name = "ets_runtime"
|
|
subsystem_name = "arkcompiler"
|
|
}
|
|
|
|
ohos_executable("ark_aot_compiler") {
|
|
if (is_ohos && is_standard_system && current_toolchain != host_toolchain &&
|
|
!ark_standalone_build) {
|
|
sanitize = {
|
|
ubsan = true
|
|
}
|
|
}
|
|
sources = [ "aot_compiler.cpp" ]
|
|
configs = [
|
|
":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",
|
|
"${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",
|
|
]
|
|
}
|
|
|
|
# hiviewdfx libraries
|
|
external_deps += hiviewdfx_ext_deps
|
|
deps += hiviewdfx_deps
|
|
|
|
install_enable = true
|
|
|
|
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_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"
|
|
}
|
|
|
|
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_}",
|
|
"--env-path",
|
|
rebase_path(root_out_dir_with_host_toolchain) +
|
|
"/arkcompiler/ets_runtime:" +
|
|
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) +
|
|
"/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("//prebuilts/clang/ohos/linux-x86_64/llvm/lib/"),
|
|
]
|
|
|
|
outputs = [ "$stub_file_gen_dir/stub.an" ]
|
|
}
|
|
|
|
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" ]
|
|
}
|