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