1020a203aSopenharmony_ci# Copyright (c) 2023-2024 Huawei Device Co., Ltd.
2020a203aSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
3020a203aSopenharmony_ci# you may not use this file except in compliance with the License.
4020a203aSopenharmony_ci# You may obtain a copy of the License at
5020a203aSopenharmony_ci#
6020a203aSopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
7020a203aSopenharmony_ci#
8020a203aSopenharmony_ci# Unless required by applicable law or agreed to in writing, software
9020a203aSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
10020a203aSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11020a203aSopenharmony_ci# See the License for the specific language governing permissions and
12020a203aSopenharmony_ci# limitations under the License.
13020a203aSopenharmony_ciimport("//base/hiviewdfx/hiview/hiview.gni")
14020a203aSopenharmony_ciimport("//build/ohos.gni")
15020a203aSopenharmony_ci
16020a203aSopenharmony_ciconfig("unified_collector_config") {
17020a203aSopenharmony_ci  visibility = [ "*:*" ]
18020a203aSopenharmony_ci  include_dirs = [
19020a203aSopenharmony_ci    "app_trace/include",
20020a203aSopenharmony_ci    "include",
21020a203aSopenharmony_ci    "observer/include",
22020a203aSopenharmony_ci    "storage/include",
23020a203aSopenharmony_ci    "task/include",
24020a203aSopenharmony_ci    "power/include",
25020a203aSopenharmony_ci    "$hiview_framework/native/unified_collection/collector/inner_include",
26020a203aSopenharmony_ci    "$hiview_framework/native/unified_collection/process/include",
27020a203aSopenharmony_ci    "$hiview_framework/native/unified_collection/decorator/include",
28020a203aSopenharmony_ci  ]
29020a203aSopenharmony_ci  defines = [ "PC_APP_STATE_COLLECT_ENABLE = $hiview_unified_collector_PC_app_state_collect_enable" ]
30020a203aSopenharmony_ci}
31020a203aSopenharmony_ci
32020a203aSopenharmony_ciohos_source_set("unified_collector") {
33020a203aSopenharmony_ci  branch_protector_ret = "pac_ret"
34020a203aSopenharmony_ci  sanitize = {
35020a203aSopenharmony_ci    cfi = true
36020a203aSopenharmony_ci    cfi_cross_dso = true
37020a203aSopenharmony_ci    cfi_vcall_icall_only = true
38020a203aSopenharmony_ci    debug = false
39020a203aSopenharmony_ci  }
40020a203aSopenharmony_ci  configs = [ ":unified_collector_config" ]
41020a203aSopenharmony_ci
42020a203aSopenharmony_ci  sources = [
43020a203aSopenharmony_ci    "$hiview_framework/native/unified_collection/decorator/unified_collection_stat.cpp",
44020a203aSopenharmony_ci    "app_trace/app_trace_context.cpp",
45020a203aSopenharmony_ci    "observer/uc_app_state_observer.cpp",
46020a203aSopenharmony_ci    "observer/uc_observer_mgr.cpp",
47020a203aSopenharmony_ci    "observer/uc_render_state_observer.cpp",
48020a203aSopenharmony_ci    "observer/uc_system_ability_listener.cpp",
49020a203aSopenharmony_ci    "storage/cpu_storage.cpp",
50020a203aSopenharmony_ci    "task/cpu_collection_task.cpp",
51020a203aSopenharmony_ci    "task/cpu_perf_dump.cpp",
52020a203aSopenharmony_ci    "unified_collector.cpp",
53020a203aSopenharmony_ci  ]
54020a203aSopenharmony_ci
55020a203aSopenharmony_ci  deps = [
56020a203aSopenharmony_ci    "$hiview_base:hiviewbase",
57020a203aSopenharmony_ci    "$hiview_interfaces/inner_api/unified_collection/utility:libucollection_graphic",
58020a203aSopenharmony_ci    "$hiview_interfaces/inner_api/unified_collection/utility:libucollection_utility",
59020a203aSopenharmony_ci    "config:UnifiedCollector_event",
60020a203aSopenharmony_ci  ]
61020a203aSopenharmony_ci
62020a203aSopenharmony_ci  external_deps = [
63020a203aSopenharmony_ci    "ability_runtime:app_manager",
64020a203aSopenharmony_ci    "ffrt:libffrt",
65020a203aSopenharmony_ci    "hilog:libhilog",
66020a203aSopenharmony_ci    "hisysevent:libhisysevent",
67020a203aSopenharmony_ci    "hitrace:hitrace_dump",
68020a203aSopenharmony_ci    "jsoncpp:jsoncpp",
69020a203aSopenharmony_ci    "relational_store:native_rdb",
70020a203aSopenharmony_ci    "safwk:system_ability_fwk",
71020a203aSopenharmony_ci    "samgr:samgr_proxy",
72020a203aSopenharmony_ci  ]
73020a203aSopenharmony_ci
74020a203aSopenharmony_ci  if (has_hiperf) {
75020a203aSopenharmony_ci    cflags = [ "-DHAS_HIPERF" ]
76020a203aSopenharmony_ci  }
77020a203aSopenharmony_ci
78020a203aSopenharmony_ci  if (power_manager_enable) {
79020a203aSopenharmony_ci    external_deps += [
80020a203aSopenharmony_ci      "common_event_service:cesfwk_innerkits",
81020a203aSopenharmony_ci      "power_manager:powermgr_client",
82020a203aSopenharmony_ci    ]
83020a203aSopenharmony_ci    sources += [ "power/power_status_manager.cpp" ]
84020a203aSopenharmony_ci    defines = [ "POWER_MANAGER_ENABLE" ]
85020a203aSopenharmony_ci  }
86020a203aSopenharmony_ci
87020a203aSopenharmony_ci  part_name = "hiview"
88020a203aSopenharmony_ci  subsystem_name = "hiviewdfx"
89020a203aSopenharmony_ci}
90020a203aSopenharmony_ci
91020a203aSopenharmony_cigroup("unittest") {
92020a203aSopenharmony_ci  testonly = true
93020a203aSopenharmony_ci  deps = [
94020a203aSopenharmony_ci    "test/unittest/common:CpuStorageTest",
95020a203aSopenharmony_ci    "test/unittest/common:TraceStateChangeTest",
96020a203aSopenharmony_ci    "test/unittest/common:UCStateObserverTest",
97020a203aSopenharmony_ci  ]
98020a203aSopenharmony_ci}
99020a203aSopenharmony_ci
100020a203aSopenharmony_cigroup("moduletest") {
101020a203aSopenharmony_ci  testonly = true
102020a203aSopenharmony_ci  deps = []
103020a203aSopenharmony_ci}
104