1# Copyright (c) 2024 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("//arkcompiler/runtime_core/ark_config.gni") 15import("//arkcompiler/runtime_core/libabckit/abckit_config.gni") 16 17ark_gen_file("abckit_options_gen_h") { 18 template_file = "$ark_root_dynamic/templates/options/options.h.erb" 19 data_file = "$abckit_root/src/options.yaml" 20 requires = [ "$ark_root_dynamic/templates/common.rb" ] 21 output_file = "$target_gen_dir/generated/abckit_options_gen.h" 22} 23 24action("crop_abckit_intrinsics_yaml") { 25 script = "$abckit_root/scripts/fix_intrinsics_yml.sh" 26 args = [ 27 rebase_path("abckit_compiler_intrinsics.yaml"), 28 rebase_path("$target_gen_dir/generated/abckit_compiler_intrinsics.yaml"), 29 ] 30 inputs = [ "abckit_compiler_intrinsics.yaml" ] 31 outputs = [ "$target_gen_dir/generated/abckit_compiler_intrinsics.yaml" ] 32} 33 34concat_yamls("abckit_concat_intrinsics_yaml") { 35 extra_dependencies = [ 36 "$ark_root_static/runtime:arkruntime_gen_intrinsics_yaml", 37 ":crop_abckit_intrinsics_yaml", 38 ] 39 output_file = 40 get_label_info("$ark_root_static/runtime:arkruntime_gen_intrinsics_yaml", 41 "target_gen_dir") + "/abckit_intrinsics.yaml" 42 default_file = 43 get_label_info("$ark_root_static/runtime:arkruntime_gen_intrinsics_yaml", 44 "target_gen_dir") + "/intrinsics.yaml" 45 add_yamls = [ "$target_gen_dir/generated/abckit_compiler_intrinsics.yaml" ] 46} 47 48group("libabckit_header_deps") { 49 deps = [ ":abckit_options_gen_h" ] 50} 51 52libabckit_sources = [ 53 "abckit_impl.cpp", 54 "helpers_common.cpp", 55 "ir_impl.cpp", 56 "ir_interface_impl.cpp", 57 "isa_dynamic_impl.cpp", 58 "isa_dynamic_impl_instr_1.cpp", 59 "isa_dynamic_impl_instr_2.cpp", 60 "isa_static_impl.cpp", 61 "metadata_arkts_inspect_impl.cpp", 62 "metadata_arkts_modify_impl.cpp", 63 "metadata_inspect_impl.cpp", 64 "metadata_js_inspect_impl.cpp", 65 "metadata_js_modify_impl.cpp", 66 "metadata_modify_impl.cpp", 67 "metadata_unknown_inspect_impl.cpp", 68 "statuses_impl.cpp", 69] 70 71libabckit_include_dirs = [ 72 "$ark_root_dynamic", 73 "$ark_root_dynamic/libpandabase", 74 "$target_gen_dir/src", 75] 76 77libabckit_deps = [ ":libabckit_header_deps" ] 78 79ohos_source_set("libabckit_source_set") { 80 sources = libabckit_sources 81 82 include_dirs = libabckit_include_dirs 83 84 configs = [ "$abckit_root:abckit_config" ] 85 86 deps = libabckit_deps 87 88 part_name = "runtime_core" 89 subsystem_name = "arkcompiler" 90} 91 92ohos_source_set("libabckit_source_set_mock") { 93 sources = libabckit_sources 94 95 include_dirs = libabckit_include_dirs 96 97 configs = [ "$abckit_root:abckit_mock_config" ] 98 99 deps = libabckit_deps 100 101 part_name = "runtime_core" 102 subsystem_name = "arkcompiler" 103} 104 105libabckit_so_deps = [ 106 "adapter_dynamic:abckit_adapter_dynamic_source_set", 107 "adapter_static:abckit_adapter_static_source_set", 108 "codegen:abckit_codegen_dynamic_source_set", 109 "codegen:abckit_codegen_static_source_set", 110 "irbuilder_dynamic:abckit_ir_builder_dynamic_source_set", 111 "mem_manager:abckit_mem_manager_source_set", 112 "wrappers:abckit_abcfile_wrapper_source_set", 113 "wrappers:abckit_pandasm_wrapper_source_set", 114] 115 116ohos_shared_library("libabckit") { 117 deps = libabckit_so_deps 118 deps += [ ":libabckit_source_set" ] 119 120 configs = [ "$abckit_root:abckit_config" ] 121 122 if (is_linux) { 123 libs = [ "stdc++fs" ] 124 } 125 126 if (is_mingw || is_win) { 127 output_extension = "dll" 128 } else { 129 output_extension = "so" 130 } 131 132 part_name = "runtime_core" 133 subsystem_name = "arkcompiler" 134} 135 136ohos_source_set("libabckit_mock") { 137 deps = libabckit_so_deps 138 deps += [ ":libabckit_source_set_mock" ] 139 140 configs = [ "$abckit_root:abckit_mock_config" ] 141 142 if (is_linux) { 143 libs = [ "stdc++fs" ] 144 } 145 146 part_name = "runtime_core" 147 subsystem_name = "arkcompiler" 148} 149