• 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  "scoped_timer.cpp",
69  "statuses_impl.cpp",
70]
71
72libabckit_include_dirs = [
73  "$ark_root_dynamic",
74  "$ark_root_dynamic/libpandabase",
75  "$target_gen_dir/src",
76]
77
78libabckit_deps = [ ":libabckit_header_deps" ]
79
80ohos_source_set("libabckit_source_set") {
81  sources = libabckit_sources
82
83  include_dirs = libabckit_include_dirs
84
85  configs = [ "$abckit_root:abckit_config" ]
86
87  deps = libabckit_deps
88
89  part_name = "runtime_core"
90  subsystem_name = "arkcompiler"
91}
92
93ohos_source_set("libabckit_source_set_mock") {
94  sources = libabckit_sources
95
96  include_dirs = libabckit_include_dirs
97
98  configs = [ "$abckit_root:abckit_mock_config" ]
99
100  deps = libabckit_deps
101
102  part_name = "runtime_core"
103  subsystem_name = "arkcompiler"
104}
105
106libabckit_so_deps = [
107  "adapter_dynamic:abckit_adapter_dynamic_source_set",
108  "adapter_static:abckit_adapter_static_source_set",
109  "codegen:abckit_codegen_dynamic_source_set",
110  "codegen:abckit_codegen_static_source_set",
111  "irbuilder_dynamic:abckit_ir_builder_dynamic_source_set",
112  "mem_manager:abckit_mem_manager_source_set",
113  "wrappers:abckit_abcfile_wrapper_source_set",
114  "wrappers:abckit_pandasm_wrapper_source_set",
115]
116
117ohos_shared_library("libabckit") {
118  deps = libabckit_so_deps
119  deps += [ ":libabckit_source_set" ]
120
121  configs = [ "$abckit_root:abckit_config" ]
122
123  if (is_linux) {
124    libs = [ "stdc++fs" ]
125  }
126
127  if (is_mingw || is_win) {
128    output_extension = "dll"
129  } else {
130    output_extension = "so"
131  }
132
133  part_name = "runtime_core"
134  subsystem_name = "arkcompiler"
135}
136
137ohos_source_set("libabckit_mock") {
138  deps = libabckit_so_deps
139  deps += [ ":libabckit_source_set_mock" ]
140
141  configs = [ "$abckit_root:abckit_mock_config" ]
142
143  if (is_linux) {
144    libs = [ "stdc++fs" ]
145  }
146
147  part_name = "runtime_core"
148  subsystem_name = "arkcompiler"
149}
150