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("hiperf_config") {
17fb726d48Sopenharmony_ci  cflags = [
18fb726d48Sopenharmony_ci    "-D ALWAYSTRUE",
19fb726d48Sopenharmony_ci    "-D is_mingw=${is_mingw}",
20fb726d48Sopenharmony_ci  ]
21fb726d48Sopenharmony_ci}
22fb726d48Sopenharmony_ciconfig("hiperf_public_config") {
23fb726d48Sopenharmony_ci  include_dirs = [
24fb726d48Sopenharmony_ci    "linux",
25fb726d48Sopenharmony_ci    "include",
26fb726d48Sopenharmony_ci    "include/nonlinux",
27fb726d48Sopenharmony_ci    "include/nonlinux/linux",
28fb726d48Sopenharmony_ci    "${SRC}/",
29fb726d48Sopenharmony_ci    "${SRC}/base",
30fb726d48Sopenharmony_ci    "${SRC}/include",
31fb726d48Sopenharmony_ci    "${SRC}/trace_streamer",
32fb726d48Sopenharmony_ci    "${THIRD_PARTY}/bounds_checking_function/include",
33fb726d48Sopenharmony_ci    "${THIRD_PARTY}/perf_include/libbpf",
34fb726d48Sopenharmony_ci    "${COMMON_LIBRARY}/base/include",
35fb726d48Sopenharmony_ci  ]
36fb726d48Sopenharmony_ci  if (is_mingw) {
37fb726d48Sopenharmony_ci    cflags = [ "-includeMingW64Fix.h" ]
38fb726d48Sopenharmony_ci  }
39fb726d48Sopenharmony_ci}
40fb726d48Sopenharmony_ciohos_source_set("hiperf_src") {
41fb726d48Sopenharmony_ci  subsystem_name = "thirdparty"
42fb726d48Sopenharmony_ci  part_name = "hiperf"
43fb726d48Sopenharmony_ci  sources = [
44fb726d48Sopenharmony_ci    "src/callstack.cpp",
45fb726d48Sopenharmony_ci    "src/dwarf_encoding.cpp",
46fb726d48Sopenharmony_ci    "src/option.cpp",
47fb726d48Sopenharmony_ci    "src/perf_event_record.cpp",
48fb726d48Sopenharmony_ci    "src/perf_file_format.cpp",
49fb726d48Sopenharmony_ci    "src/perf_file_reader.cpp",
50fb726d48Sopenharmony_ci    "src/register.cpp",
51fb726d48Sopenharmony_ci    "src/report.cpp",
52fb726d48Sopenharmony_ci    "src/subcommand.cpp",
53fb726d48Sopenharmony_ci    "src/symbols_file.cpp",
54fb726d48Sopenharmony_ci    "src/unique_stack_table.cpp",
55fb726d48Sopenharmony_ci    "src/utilities.cpp",
56fb726d48Sopenharmony_ci    "src/virtual_runtime.cpp",
57fb726d48Sopenharmony_ci    "src/virtual_thread.cpp",
58fb726d48Sopenharmony_ci  ]
59fb726d48Sopenharmony_ci  configs -= [ trace_cfg_path ]
60fb726d48Sopenharmony_ci  configs += [ "../../gn:hiperf_trace_cfg" ]
61fb726d48Sopenharmony_ci  configs += [ ":hiperf_config" ]
62fb726d48Sopenharmony_ci  public_configs = [ ":hiperf_public_config" ]
63fb726d48Sopenharmony_ci  public_deps = [
64fb726d48Sopenharmony_ci    "${THIRD_PARTY}/zlib:libz",
65fb726d48Sopenharmony_ci    "//third_party/perf_include/hiviewdfx:libfaultloggerd",
66fb726d48Sopenharmony_ci  ]
67fb726d48Sopenharmony_ci  if (!use_wasm && !is_win && !is_mingw && !is_mac && !is_test) {
68fb726d48Sopenharmony_ci    if (!is_independent_compile) {
69fb726d48Sopenharmony_ci      if (target_cpu == "arm64") {
70fb726d48Sopenharmony_ci        public_deps += [ "//third_party/libunwind:unwind_source_arm64_opt" ]
71fb726d48Sopenharmony_ci      } else {
72fb726d48Sopenharmony_ci        public_deps += [ "//third_party/libunwind:unwind_source_${target_cpu}" ]
73fb726d48Sopenharmony_ci      }
74fb726d48Sopenharmony_ci    } else {
75fb726d48Sopenharmony_ci      public_deps += [ "${THIRD_PARTY}/libunwind:libunwind" ]
76fb726d48Sopenharmony_ci    }
77fb726d48Sopenharmony_ci  }
78fb726d48Sopenharmony_ci}
79