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_ci
14fb726d48Sopenharmony_ciimport("//build/ohos.gni")
15fb726d48Sopenharmony_ciimport("../../../build/ts.gni")
16fb726d48Sopenharmony_ciconfig("ebpf_parser_cfg") {
17fb726d48Sopenharmony_ci  if (!is_independent_compile) {
18fb726d48Sopenharmony_ci    configs = [ "${TS_DIR}/gn:ts_config" ]
19fb726d48Sopenharmony_ci  }
20fb726d48Sopenharmony_ci  include_dirs = [
21fb726d48Sopenharmony_ci    ".",
22fb726d48Sopenharmony_ci    "../",
23fb726d48Sopenharmony_ci    "../..",
24fb726d48Sopenharmony_ci    "../../trace_data",
25fb726d48Sopenharmony_ci    "../../base",
26fb726d48Sopenharmony_ci    "../../include",
27fb726d48Sopenharmony_ci    "../../filter",
28fb726d48Sopenharmony_ci    "../../cfg",
29fb726d48Sopenharmony_ci    "../../trace_streamer",
30fb726d48Sopenharmony_ci    "../../proto_reader/include",
31fb726d48Sopenharmony_ci    "${THIRD_PARTY}/protobuf/src",
32fb726d48Sopenharmony_ci    "${THIRD_PARTY}/sqlite/include",
33fb726d48Sopenharmony_ci    "${THIRD_PARTY}/bounds_checking_function/include",
34fb726d48Sopenharmony_ci  ]
35fb726d48Sopenharmony_ci  include_dirs += [
36fb726d48Sopenharmony_ci    "${SRC}/trace_data/trace_stdtype",
37fb726d48Sopenharmony_ci    "${SRC}/trace_data/trace_stdtype/ftrace",
38fb726d48Sopenharmony_ci    "${SRC}/trace_data/trace_stdtype/ftrace/template",
39fb726d48Sopenharmony_ci    "${SRC}/trace_data/trace_stdtype/hilog",
40fb726d48Sopenharmony_ci    "${SRC}/trace_data/trace_stdtype/hiperf",
41fb726d48Sopenharmony_ci    "${SRC}/trace_data/trace_stdtype/hisysevent",
42fb726d48Sopenharmony_ci    "${SRC}/trace_data/trace_stdtype/htrace",
43fb726d48Sopenharmony_ci    "${SRC}/trace_data/trace_stdtype/measure",
44fb726d48Sopenharmony_ci  ]
45fb726d48Sopenharmony_ci  if (is_mingw || is_mac) {
46fb726d48Sopenharmony_ci    include_dirs += [ "${THIRD_PARTY}/elfutils/libelf" ]
47fb726d48Sopenharmony_ci  }
48fb726d48Sopenharmony_ci  if (enable_ts_utest && !use_wasm) {
49fb726d48Sopenharmony_ci    cflags = [
50fb726d48Sopenharmony_ci      "-fprofile-arcs",
51fb726d48Sopenharmony_ci      "-ftest-coverage",
52fb726d48Sopenharmony_ci    ]
53fb726d48Sopenharmony_ci    ldflags = [
54fb726d48Sopenharmony_ci      "-fprofile-arcs",
55fb726d48Sopenharmony_ci      "-ftest-coverage",
56fb726d48Sopenharmony_ci      "--coverage",
57fb726d48Sopenharmony_ci    ]
58fb726d48Sopenharmony_ci    if (is_test) {
59fb726d48Sopenharmony_ci      cflags += [ "-D IS_UT" ]
60fb726d48Sopenharmony_ci    }
61fb726d48Sopenharmony_ci  }
62fb726d48Sopenharmony_ci}
63fb726d48Sopenharmony_ci
64fb726d48Sopenharmony_ciohos_static_library("ebpf_parser") {
65fb726d48Sopenharmony_ci  subsystem_name = "${OHOS_PROFILER_SUBSYS_NAME}"
66fb726d48Sopenharmony_ci  part_name = "${OHOS_PROFILER_PART_NAME}"
67fb726d48Sopenharmony_ci  sources = [
68fb726d48Sopenharmony_ci    "bio_latency_data_parser.cpp",
69fb726d48Sopenharmony_ci    "ebpf_base.cpp",
70fb726d48Sopenharmony_ci    "ebpf_data_parser.cpp",
71fb726d48Sopenharmony_ci    "ebpf_data_reader.cpp",
72fb726d48Sopenharmony_ci    "ebpf_splitter.cpp",
73fb726d48Sopenharmony_ci    "file_system_data_parser.cpp",
74fb726d48Sopenharmony_ci    "paged_memory_data_parser.cpp",
75fb726d48Sopenharmony_ci  ]
76fb726d48Sopenharmony_ci  public_configs = [ ":ebpf_parser_cfg" ]
77fb726d48Sopenharmony_ci  public_deps = [
78fb726d48Sopenharmony_ci    "${OHOS_TRACE_STREAMER_PROTOS_DIR}/protos/types/plugins/memory_data:memory_data_reader",
79fb726d48Sopenharmony_ci    "${PERF_DIR}/hiperf:hiperf_src",
80fb726d48Sopenharmony_ci  ]
81fb726d48Sopenharmony_ci  deps = [
82fb726d48Sopenharmony_ci    "${THIRD_PARTY}/protobuf:protobuf_lite_static",
83fb726d48Sopenharmony_ci    "${THIRD_PARTY}/protobuf:protobuf_static",
84fb726d48Sopenharmony_ci  ]
85fb726d48Sopenharmony_ci}
86