• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2023-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("//base/hiviewdfx/hiview/hiview.gni")
15import("//build/ohos.gni")
16
17config("ucollection_source_config") {
18  visibility = [ "*:*" ]
19
20  include_dirs = [
21    "collector/inner_include",
22    "process/include",
23    "decorator/include",
24    "$hiview_interfaces/inner_api/unified_collection",
25    "$hiview_interfaces/inner_api/unified_collection/utility",
26    "$hiview_interfaces/inner_api/unified_collection/resource",
27  ]
28
29  if (hiview_unified_collector_ebpf_enable) {
30    include_dirs += [ "collector/impl/hiebpf" ]
31  } else {
32    include_dirs += [ "collector/empty_impl/hiebpf" ]
33  }
34
35  if (hiview_unified_collector_network_enable) {
36    include_dirs += [ "collector/impl/network" ]
37  } else {
38    include_dirs += [ "collector/empty_impl/network" ]
39  }
40
41  if (has_hiperf && hiview_unified_collector_perf_enable) {
42    include_dirs += [
43      "collector/impl/perf",
44      "collector/config"
45    ]
46  } else {
47    include_dirs += [ "collector/empty_impl/perf" ]
48  }
49
50  if (hiview_unified_collector_graphic_enable) {
51    include_dirs += [ "collector/impl/graphic" ]
52  } else {
53    include_dirs += [ "collector/empty_impl/graphic" ]
54  }
55
56  if (hiview_unified_collector_gpu_enable) {
57    include_dirs += [ "collector/impl/gpu" ]
58  } else {
59    include_dirs += [ "collector/empty_impl/gpu" ]
60  }
61
62  if (hiview_unified_collector_cpu_enable) {
63    include_dirs += [
64      "collector/impl/cpu/include",
65      "collector/impl/cpu/calculator/include",
66      "collector/impl/cpu/device_client/include",
67      "collector/impl/cpu/utils/include",
68    ]
69  } else {
70    include_dirs += [ "collector/empty_impl/cpu" ]
71  }
72
73  if (has_hiprofiler && hiview_unified_collector_mem_profiler_enable) {
74    include_dirs += [ "collector/impl/mem_profiler" ]
75  } else {
76    include_dirs += [ "collector/empty_impl/mem_profiler" ]
77  }
78
79  if (hiview_unified_collector_io_enable) {
80    include_dirs += [
81      "collector/impl/io",
82      "collector/impl/io/calculator/include",
83    ]
84  } else {
85    include_dirs += [ "collector/empty_impl/io" ]
86  }
87
88  if (hiview_unified_collector_thermal_enable) {
89    include_dirs += [ "collector/impl/thermal" ]
90  } else {
91    include_dirs += [ "collector/empty_impl/thermal" ]
92  }
93
94  if (hiview_unified_collector_memory_enable) {
95    include_dirs += [
96      "collector/impl/memory",
97      "collector/impl/memory/utils",
98    ]
99  } else {
100    include_dirs += [ "collector/empty_impl/memory" ]
101  }
102
103  if (hiview_unified_collector_hilog_enable) {
104    include_dirs += [ "collector/impl/hilog" ]
105  } else {
106    include_dirs += [ "collector/empty_impl/hilog" ]
107  }
108
109  if (hiview_unified_collector_wm_enable) {
110    include_dirs += [ "collector/impl/wm" ]
111  } else {
112    include_dirs += [ "collector/empty_impl/wm" ]
113  }
114
115  if (hiview_unified_collector_process_enable) {
116    include_dirs += [ "collector/impl/process" ]
117  } else {
118    include_dirs += [ "collector/empty_impl/process" ]
119  }
120
121  if (hiview_unified_collector_trace_enable) {
122    include_dirs += [
123      "collector/impl/trace/include",
124      "collector/impl/trace/strategy/include",
125    ]
126  } else {
127    include_dirs += [ "collector/empty_impl/trace" ]
128  }
129
130  defines = [ "PC_APP_STATE_COLLECT_ENABLE = $hiview_unified_collector_PC_app_state_collect_enable" ]
131}
132
133config("ucollection_test_config") {
134
135  visibility = [ "*:*" ]
136
137  include_dirs = [
138    "collector/inner_include",
139    "process/include",
140    "decorator/include",
141    "$hiview_interfaces/inner_api/unified_collection",
142    "$hiview_interfaces/inner_api/unified_collection/utility",
143    "$hiview_interfaces/inner_api/unified_collection/resource",
144  ]
145
146  include_dirs += [
147    "collector/empty_impl/cpu",
148    "collector/empty_impl/memory",
149  ]
150}
151
152ohos_source_set("ucollection_source") {
153  configs = [
154    ":ucollection_source_config",
155    "$hiview_base:logger_config",
156    "$hiview_base/event_report:hiview_event_report_config",
157  ]
158
159  public_configs = [ ":ucollection_source_config" ]
160
161  sources = [
162    "collector/common_util.cpp",
163    "decorator/decorator.cpp",
164    "decorator/decorator_util.cpp",
165    "decorator/unified_collection_stat.cpp",
166    "process/process_status.cpp",
167  ]
168
169  deps = [ "$hiview_base:hiviewbase" ]
170
171  external_deps = [
172    "ability_base:want",
173    "ability_runtime:app_manager",
174    "c_utils:utils",
175    "hilog:libhilog",
176    "hisysevent:libhisysevent",
177    "ipc:ipc_single",
178    "samgr:samgr_proxy",
179  ]
180
181  defines = []
182
183  if (hiview_unified_collector_ebpf_enable) {
184    sources += [
185      "collector/impl/hiebpf/hiebpf_collector_impl.cpp",
186      "decorator/hiebpf_decorator.cpp",
187    ]
188    defines += [ "UNIFIED_COLLECTOR_EBPF_ENABLE" ]
189  } else {
190    sources += [ "collector/empty_impl/hiebpf/hiebpf_collector_empty_impl.cpp" ]
191  }
192
193  if (hiview_unified_collector_network_enable) {
194    sources += [
195      "collector/impl/network/network_collector_impl.cpp",
196      "decorator/network_decorator.cpp",
197    ]
198    defines += [ "UNIFIED_COLLECTOR_NETWORK_ENABLE" ]
199
200    if (is_wifi_enable) {
201      external_deps += [ "wifi:wifi_sdk" ]
202      defines += [ "COMMUNICATION_WIFI_ENABLE" ]
203    }
204  } else {
205    sources +=
206        [ "collector/empty_impl/network/network_collector_empty_impl.cpp" ]
207  }
208
209  if (hiview_unified_collector_graphic_enable) {
210    sources += [
211      "collector/impl/graphic/graphic_memory_collector_impl.cpp",
212      "decorator/graphic_memory_decorator.cpp",
213    ]
214    defines += [ "UNIFIED_COLLECTOR_GRAPHIC_ENABLE" ]
215  } else {
216    sources += [
217      "collector/empty_impl/graphic/graphic_memory_collector_empty_impl.cpp",
218    ]
219  }
220
221  if (hiview_unified_collector_gpu_enable) {
222    sources += [
223      "collector/impl/gpu/gpu_collector_impl.cpp",
224      "decorator/gpu_decorator.cpp",
225    ]
226    defines += [ "UNIFIED_COLLECTOR_GPU_ENABLE" ]
227  } else {
228    sources += [ "collector/empty_impl/gpu/gpu_collector_empty_impl.cpp" ]
229  }
230
231  if (hiview_unified_collector_cpu_enable) {
232    sources += [
233      "collector/impl/cpu/calculator/cpu_calculator.cpp",
234      "collector/impl/cpu/src/cpu_collector_impl.cpp",
235      "collector/impl/cpu/src/process_state_info_collector.cpp",
236      "collector/impl/cpu/src/sys_cpu_usage_collector.cpp",
237      "collector/impl/cpu/src/thread_state_info_collector.cpp",
238      "collector/impl/cpu/utils/cpu_util.cpp",
239      "decorator/cpu_decorator.cpp",
240    ]
241    defines += [ "UNIFIED_COLLECTOR_CPU_ENABLE" ]
242    deps += [ "collector/impl/cpu/device_client:collect_device_client" ]
243  } else {
244    sources += [ "collector/empty_impl/cpu/cpu_collector_empty_impl.cpp" ]
245  }
246
247  if (hiview_unified_collector_io_enable) {
248    sources += [
249      "collector/impl/io/calculator/io_calculator.cpp",
250      "collector/impl/io/io_collector_impl.cpp",
251      "decorator/io_decorator.cpp",
252    ]
253    defines += [ "UNIFIED_COLLECTOR_IO_ENABLE" ]
254  } else {
255    sources += [ "collector/empty_impl/io/io_collector_empty_impl.cpp" ]
256  }
257
258  if (hiview_unified_collector_memory_enable) {
259    sources += [
260      "collector/impl/memory/memory_collector_impl.cpp",
261      "collector/impl/memory/utils/memory_utils.cpp",
262      "decorator/memory_decorator.cpp",
263    ]
264    defines += [ "UNIFIED_COLLECTOR_MEMORY_ENABLE" ]
265  } else {
266    sources += [ "collector/empty_impl/memory/memory_collector_empty_impl.cpp" ]
267  }
268
269  if (hiview_unified_collector_hilog_enable) {
270    sources += [
271      "collector/impl/hilog/hilog_collector_impl.cpp",
272      "decorator/hilog_decorator.cpp",
273    ]
274    defines += [ "UNIFIED_COLLECTOR_HILOG_ENABLE" ]
275  } else {
276    sources += [ "collector/empty_impl/hilog/hilog_collector_empty_impl.cpp" ]
277  }
278
279  if (hiview_unified_collector_wm_enable) {
280    sources += [
281      "collector/impl/wm/wm_collector_impl.cpp",
282      "decorator/wm_decorator.cpp",
283    ]
284    defines += [ "UNIFIED_COLLECTOR_WM_ENABLE" ]
285  } else {
286    sources += [ "collector/empty_impl/wm/wm_collector_empty_impl.cpp" ]
287  }
288
289  if (hiview_unified_collector_process_enable) {
290    sources += [
291      "collector/impl/process/process_collector_impl.cpp",
292      "decorator/process_decorator.cpp",
293    ]
294    defines += [ "UNIFIED_COLLECTOR_PROCESS_ENABLE" ]
295  } else {
296    sources +=
297        [ "collector/empty_impl/process/process_collector_empty_impl.cpp" ]
298  }
299
300  if (hiview_unified_collector_trace_enable) {
301    sources += [
302      "collector/impl/trace/trace_collector_impl.cpp",
303      "collector/impl/trace/strategy/src/trace_strategy.cpp",
304      "collector/impl/trace/strategy/src/trace_strategy_factory.cpp",
305      "collector/impl/trace/strategy/src/trace_handler.cpp",
306      "collector/impl/trace/trace_utils.cpp",
307      "decorator/trace_decorator.cpp",
308    ]
309    defines += [ "UNIFIED_COLLECTOR_TRACE_ENABLE" ]
310    deps += [ "trace_manager:libtrace_manager" ]
311    external_deps += [
312      "cJSON:cjson",
313      "jsoncpp:jsoncpp",
314      "zlib:libz",
315    ]
316  } else {
317    sources += [ "collector/empty_impl/trace/trace_collector_empty_impl.cpp" ]
318  }
319
320  cflags = []
321  if (has_hiprofiler && hiview_unified_collector_mem_profiler_enable) {
322    sources += [
323      "collector/impl/mem_profiler/mem_profiler_collector_impl.cpp",
324      "decorator/mem_profiler_decorator.cpp",
325    ]
326    cflags += [ "-DHAS_HIPROFILER" ]
327    external_deps += [
328      "hiprofiler:libnative_daemon_client",
329      "init:libbegetutil",
330    ]
331  }
332
333  if (has_hiperf && hiview_unified_collector_perf_enable) {
334    sources += [
335      "collector/impl/perf/perf_collector_impl.cpp",
336      "collector/config/perf_collect_config.cpp",
337      "decorator/perf_decorator.cpp",
338    ]
339    cflags += [ "-DHAS_HIPERF" ]
340    external_deps += [
341      "cJSON:cjson",
342      "config_policy:configpolicy_util",
343      "hiperf:hiperf_client",
344    ]
345  } else {
346    sources += [ "collector/empty_impl/perf/perf_collector_empty_impl.cpp" ]
347  }
348
349  if (hiview_unified_collector_thermal_enable) {
350    sources += [
351      "collector/impl/thermal/thermal_collector_impl.cpp",
352      "decorator/thermal_decorator.cpp",
353    ]
354    if (thermal_manager_enable) {
355      cflags += [ "-DTHERMAL_MANAGER_ENABLE" ]
356      external_deps += [ "thermal_manager:thermalsrv_client" ]
357    }
358    defines += [ "UNIFIED_COLLECTOR_THERMAL_ENABLE" ]
359  } else {
360    sources +=
361        [ "collector/empty_impl/thermal/thermal_collector_empty_impl.cpp" ]
362  }
363
364  part_name = "hiview"
365  subsystem_name = "hiviewdfx"
366}
367
368ohos_source_set("memory_collector_empty_source") {
369  branch_protector_ret = "pac_ret"
370  sanitize = {
371    cfi = true
372    cfi_cross_dso = true
373    cfi_vcall_icall_only = true
374    debug = false
375  }
376
377  public_configs = [ ":ucollection_test_config" ]
378
379  sources = [ "collector/empty_impl/memory/memory_collector_empty_impl.cpp" ]
380
381  part_name = "hiview"
382  subsystem_name = "hiviewdfx"
383}
384
385ohos_source_set("cpu_collector_empty_source") {
386  branch_protector_ret = "pac_ret"
387  sanitize = {
388    cfi = true
389    cfi_cross_dso = true
390    cfi_vcall_icall_only = true
391    debug = false
392  }
393
394  public_configs = [ ":ucollection_test_config" ]
395
396  sources = [ "collector/empty_impl/cpu/cpu_collector_empty_impl.cpp" ]
397
398  part_name = "hiview"
399  subsystem_name = "hiviewdfx"
400}
401
402group("unittest") {
403  testonly = true
404  deps = [ "decorator/test:DecoratorUnitTest" ]
405
406  if (hiview_unified_collector_trace_enable) {
407    deps += [
408      "collector/impl/trace/test:TraceUtilsTest",
409      "collector/impl/trace/test:TraceStrategyTest",
410      "collector/impl/trace/test:TraceAppStrategyTest",
411      "trace_manager/test:TraceManagerTest",
412    ]
413  }
414
415  if (hiview_unified_collector_graphic_enable) {
416    deps += [ "collector/impl/memory/utils/test/unittest:MemoryUtilsUnitTest" ]
417  }
418
419  if (has_hiperf && hiview_unified_collector_perf_enable) {
420    deps += [ "collector/config/test/unittest:PerfCollectConfigUnitTest" ]
421  }
422}
423