1# Copyright (c) 2021-2022 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("//base/hiviewdfx/hitrace/hitrace.gni")
15import("//build/ohos.gni")
16
17config("libhitrace_pub_config") {
18  visibility = [ ":*" ]
19
20  include_dirs = [ "include" ]
21}
22
23ohos_shared_library("libhitracechain") {
24  branch_protector_ret = "pac_ret"
25  public_configs = [ ":libhitrace_pub_config" ]
26
27  deps = [ "$hitrace_frameworks_path/native:hitracechain_source" ]
28
29  cflags = [ "-fstack-protector-strong" ]
30
31  if (defined(ohos_lite)) {
32    external_deps = [ "hilog_lite:hilog_lite" ]
33  } else {
34    external_deps = [ "hilog:libhilog" ]
35  }
36
37  output_extension = "so"
38  if (build_public_version) {
39    install_enable = true
40  } else {
41    install_enable = false
42  }
43
44  innerapi_tags = [
45    "chipsetsdk_indirect",
46    "platformsdk",
47  ]
48
49  version_script = "libhitracechain.map"
50
51  install_images = [
52    "system",
53    "updater",
54  ]
55
56  part_name = "hitrace"
57  subsystem_name = "hiviewdfx"
58}
59
60config("hitrace_meter_config") {
61  visibility = [ ":*" ]
62  include_dirs = [ "include/hitrace_meter" ]
63}
64
65ohos_static_library("hitrace_inner") {
66  branch_protector_ret = "pac_ret"
67  include_dirs = [
68    "include/hitrace_meter",
69    "include",
70    "$hitrace_frameworks_path/include/",
71  ]
72  sources = [
73    "src/hitrace_meter.cpp",
74    "src/hitrace_meter_c.c",
75    "src/hitrace_meter_wrapper.cpp",
76  ]
77
78  external_deps = [
79    "bounds_checking_function:libsec_shared",
80    "init:libbeget_proxy",
81    "init:libbegetutil",
82  ]
83
84  if (defined(ohos_lite)) {
85    external_deps += [ "hilog_lite:hilog_lite" ]
86  } else {
87    external_deps += [ "hilog:libhilog" ]
88  }
89
90  part_name = "hitrace"
91  subsystem_name = "hiviewdfx"
92}
93
94config("hitrace_dump_config") {
95  visibility = [ ":*" ]
96  include_dirs = [ "include" ]
97}
98
99ohos_shared_library("hitrace_dump") {
100  include_dirs = [
101    "include",
102    "$hitrace_cmd_path/include",
103    "$hitrace_frameworks_path/include",
104  ]
105  public_configs = [ ":hitrace_dump_config" ]
106  sources = [
107    "$hitrace_cmd_path/src/hitrace_osal.cpp",
108    "$hitrace_frameworks_path/native/common_utils.cpp",
109    "$hitrace_frameworks_path/native/dynamic_buffer.cpp",
110    "src/hitrace_dump.cpp",
111  ]
112
113  if (hitrace_double_tracebuffer_size) {
114    defines = [ "DOUBLE_TRACEBUFFER_ENABLE" ]
115  }
116
117  deps = [ "$hitrace_config_path:hitrace_tags" ]
118
119  external_deps = [
120    "bounds_checking_function:libsec_shared",
121    "cJSON:cjson",
122    "init:libbegetutil",
123  ]
124
125  if (defined(ohos_lite)) {
126    external_deps += [ "hilog_lite:hilog_lite" ]
127  } else {
128    external_deps += [ "hilog:libhilog" ]
129  }
130  version_script = "hitrace.map"
131  innerapi_tags = [ "platformsdk" ]
132  part_name = "hitrace"
133  subsystem_name = "hiviewdfx"
134}
135
136ohos_shared_library("hitrace_meter") {
137  branch_protector_ret = "pac_ret"
138  public_configs = [ ":hitrace_meter_config" ]
139  deps = [
140    ":hitrace_etc",
141    ":hitrace_inner",
142    ":libhitracechain",
143  ]
144
145  external_deps = [ "bounds_checking_function:libsec_shared" ]
146  if (defined(ohos_lite)) {
147    external_deps += [ "hilog_lite:hilog_lite" ]
148  } else {
149    external_deps += [ "hilog:libhilog" ]
150  }
151  version_script = "hitrace.map"
152  output_extension = "so"
153
154  innerapi_tags = [
155    "chipsetsdk",
156    "platformsdk",
157    "sasdk",
158  ]
159  part_name = "hitrace"
160  install_images = [
161    "system",
162    "updater",
163  ]
164  subsystem_name = "hiviewdfx"
165}
166
167ohos_prebuilt_etc("hitrace.para") {
168  source = "hitrace.para"
169  install_images = [
170    "system",
171    "updater",
172  ]
173  module_install_dir = "etc/param"
174  part_name = "hitrace"
175  subsystem_name = "hiviewdfx"
176}
177
178ohos_prebuilt_etc("hitrace.para.dac") {
179  source = "hitrace.para.dac"
180  install_images = [
181    "system",
182    "updater",
183  ]
184  module_install_dir = "etc/param"
185  part_name = "hitrace"
186  subsystem_name = "hiviewdfx"
187}
188
189group("hitrace_etc") {
190  deps = [
191    ":hitrace.para",
192    ":hitrace.para.dac",
193  ]
194}
195