• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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