1fb726d48Sopenharmony_ci# Copyright (c) Huawei Technologies Co., Ltd. 2023. All rights reserved.
2fb726d48Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
3fb726d48Sopenharmony_ci# you may not use this file except in compliance with the License.
4fb726d48Sopenharmony_ci# You may obtain a copy of the License at
5fb726d48Sopenharmony_ci#
6fb726d48Sopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
7fb726d48Sopenharmony_ci#
8fb726d48Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software
9fb726d48Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
10fb726d48Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11fb726d48Sopenharmony_ci# See the License for the specific language governing permissions and
12fb726d48Sopenharmony_ci# limitations under the License.
13fb726d48Sopenharmony_ciimport("//build/ohos.gni")
14fb726d48Sopenharmony_ciimport("../../../build/ts.gni")
15fb726d48Sopenharmony_ciohos_source_set("pbreader_parser_src") {
16fb726d48Sopenharmony_ci  subsystem_name = "${OHOS_PROFILER_SUBSYS_NAME}"
17fb726d48Sopenharmony_ci  part_name = "${OHOS_PROFILER_PART_NAME}"
18fb726d48Sopenharmony_ci  sources = [
19fb726d48Sopenharmony_ci    "../parser_base.cpp",
20fb726d48Sopenharmony_ci    "pbreader_clock_detail_parser.cpp",
21fb726d48Sopenharmony_ci    "pbreader_parser.cpp",
22fb726d48Sopenharmony_ci  ]
23fb726d48Sopenharmony_ci  include_dirs = [
24fb726d48Sopenharmony_ci    "../../proto_reader/include",
25fb726d48Sopenharmony_ci    ".",
26fb726d48Sopenharmony_ci    "htrace_parser",
27fb726d48Sopenharmony_ci    "../../include",
28fb726d48Sopenharmony_ci    "../../",
29fb726d48Sopenharmony_ci    "../",
30fb726d48Sopenharmony_ci    "../../trace_data",
31fb726d48Sopenharmony_ci    "../../cfg",
32fb726d48Sopenharmony_ci    "../../trace_streamer",
33fb726d48Sopenharmony_ci    "../../metrics",
34fb726d48Sopenharmony_ci    "${THIRD_PARTY}/bounds_checking_function/include",
35fb726d48Sopenharmony_ci    "${THIRD_PARTY}/protobuf/src",
36fb726d48Sopenharmony_ci    "${THIRD_PARTY}/sqlite/include",
37fb726d48Sopenharmony_ci    "${THIRD_PARTY}/json/single_include/nlohmann",
38fb726d48Sopenharmony_ci    "../../filter",
39fb726d48Sopenharmony_ci    "../../base",
40fb726d48Sopenharmony_ci    "../../rpc",
41fb726d48Sopenharmony_ci    "../ebpf_parser",
42fb726d48Sopenharmony_ci  ]
43fb726d48Sopenharmony_ci  include_dirs += [
44fb726d48Sopenharmony_ci    "${SRC}/trace_data/trace_stdtype",
45fb726d48Sopenharmony_ci    "${SRC}/trace_data/trace_stdtype/ftrace",
46fb726d48Sopenharmony_ci    "${SRC}/trace_data/trace_stdtype/ftrace/template",
47fb726d48Sopenharmony_ci    "${SRC}/trace_data/trace_stdtype/hilog",
48fb726d48Sopenharmony_ci    "${SRC}/trace_data/trace_stdtype/hiperf",
49fb726d48Sopenharmony_ci    "${SRC}/trace_data/trace_stdtype/hisysevent",
50fb726d48Sopenharmony_ci    "${SRC}/trace_data/trace_stdtype/htrace",
51fb726d48Sopenharmony_ci    "${SRC}/trace_data/trace_stdtype/measure",
52fb726d48Sopenharmony_ci  ]
53fb726d48Sopenharmony_ci  if (is_mingw || is_mac) {
54fb726d48Sopenharmony_ci    include_dirs += [
55fb726d48Sopenharmony_ci      "${THIRD_PARTY}/elfutils/libelf",
56fb726d48Sopenharmony_ci      "${THIRD_PARTY}/libbpf/include/uapi",
57fb726d48Sopenharmony_ci    ]
58fb726d48Sopenharmony_ci  }
59fb726d48Sopenharmony_ci
60fb726d48Sopenharmony_ci  if (!is_independent_compile) {
61fb726d48Sopenharmony_ci    configs = [ "${TS_DIR}/gn:ts_config" ]
62fb726d48Sopenharmony_ci  }
63fb726d48Sopenharmony_ci  if (enable_ts_utest && !use_wasm) {
64fb726d48Sopenharmony_ci    cflags = [
65fb726d48Sopenharmony_ci      "-fprofile-arcs",
66fb726d48Sopenharmony_ci      "-ftest-coverage",
67fb726d48Sopenharmony_ci    ]
68fb726d48Sopenharmony_ci    ldflags = [
69fb726d48Sopenharmony_ci      "-fprofile-arcs",
70fb726d48Sopenharmony_ci      "-ftest-coverage",
71fb726d48Sopenharmony_ci      "--coverage",
72fb726d48Sopenharmony_ci    ]
73fb726d48Sopenharmony_ci    if (is_test) {
74fb726d48Sopenharmony_ci      cflags += [ "-D IS_UT" ]
75fb726d48Sopenharmony_ci    }
76fb726d48Sopenharmony_ci  }
77fb726d48Sopenharmony_ci  public_configs = [ "../ebpf_parser:ebpf_parser_cfg" ]
78fb726d48Sopenharmony_ci  public_deps =
79fb726d48Sopenharmony_ci      [ "${OHOS_TRACE_STREAMER_PROTOS_DIR}/protos/services:ts_all_type_cpp" ]
80fb726d48Sopenharmony_ci  if (enable_hiperf) {
81fb726d48Sopenharmony_ci    public_deps += [ "../hiperf_parser:hiperf_parser" ]
82fb726d48Sopenharmony_ci  }
83fb726d48Sopenharmony_ci  if (enable_native_hook) {
84fb726d48Sopenharmony_ci    public_deps += [ "native_hook_parser:native_hook_parser" ]
85fb726d48Sopenharmony_ci  }
86fb726d48Sopenharmony_ci  if (enable_hilog) {
87fb726d48Sopenharmony_ci    public_deps += [ "hilog_parser:pbreader_hilog_parser" ]
88fb726d48Sopenharmony_ci  }
89fb726d48Sopenharmony_ci  if (enable_hisysevent) {
90fb726d48Sopenharmony_ci    public_deps += [ "hisysevent_parser:pbreader_hisysevent_parser" ]
91fb726d48Sopenharmony_ci  }
92fb726d48Sopenharmony_ci  if (enable_arkts) {
93fb726d48Sopenharmony_ci    public_deps += [ "arkts:pbreader_arkts_parser" ]
94fb726d48Sopenharmony_ci  }
95fb726d48Sopenharmony_ci  if (enable_htrace) {
96fb726d48Sopenharmony_ci    public_deps += [ "htrace_parser:pbreader_htrace_parser" ]
97fb726d48Sopenharmony_ci  }
98fb726d48Sopenharmony_ci  if (enable_ffrt) {
99fb726d48Sopenharmony_ci    public_deps += [ "ffrt_parser:pbreader_ffrt_parser" ]
100fb726d48Sopenharmony_ci  }
101fb726d48Sopenharmony_ci  if (enable_memory) {
102fb726d48Sopenharmony_ci    public_deps += [ "mem_parser:pbreader_mem_parser" ]
103fb726d48Sopenharmony_ci  }
104fb726d48Sopenharmony_ci  public_deps += [ "xpower_parser:pbreader_xpower_parser" ]
105fb726d48Sopenharmony_ci  if (enable_hidump) {
106fb726d48Sopenharmony_ci    public_deps += [ "hidump_parser:pbreader_hidump_parser" ]
107fb726d48Sopenharmony_ci  }
108fb726d48Sopenharmony_ci  if (enable_cpudata) {
109fb726d48Sopenharmony_ci    public_deps += [ "cpu_data_parser:cpu_data_parser" ]
110fb726d48Sopenharmony_ci  }
111fb726d48Sopenharmony_ci  if (enable_network) {
112fb726d48Sopenharmony_ci    public_deps += [ "network_parser:network_parser" ]
113fb726d48Sopenharmony_ci  }
114fb726d48Sopenharmony_ci  if (enable_diskio) {
115fb726d48Sopenharmony_ci    public_deps += [ "disk_io_parser:disk_io_parser" ]
116fb726d48Sopenharmony_ci  }
117fb726d48Sopenharmony_ci  if (enable_process) {
118fb726d48Sopenharmony_ci    public_deps += [ "process_parser:process_parser" ]
119fb726d48Sopenharmony_ci  }
120fb726d48Sopenharmony_ci  if (enable_stream_extend) {
121fb726d48Sopenharmony_ci    public_deps +=
122fb726d48Sopenharmony_ci        [ "${EXTEND_SRC}/parser/pbreader_stream_parser:stream_extend_parser" ]
123fb726d48Sopenharmony_ci  }
124fb726d48Sopenharmony_ci  public_deps += [
125fb726d48Sopenharmony_ci    "${OHOS_TRACE_STREAMER_PROTOS_DIR}/protos/services:ts_all_type_cpp_standard",
126fb726d48Sopenharmony_ci    "${THIRD_PARTY}/protobuf:protobuf_lite_static",
127fb726d48Sopenharmony_ci    "${THIRD_PARTY}/protobuf:protobuf_static",
128fb726d48Sopenharmony_ci    "//third_party/perf_include/hiviewdfx:libfaultloggerd",
129fb726d48Sopenharmony_ci  ]
130fb726d48Sopenharmony_ci}
131