1020a203aSopenharmony_ci# Copyright (c) 2022-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_ciif (enable_hiview_usage_event_report_build) {
17020a203aSopenharmony_ci  config("usage_event_report_config") {
18020a203aSopenharmony_ci    visibility = [ "*:*" ]
19020a203aSopenharmony_ci    include_dirs = [
20020a203aSopenharmony_ci      "cache/include",
21020a203aSopenharmony_ci      "event/include",
22020a203aSopenharmony_ci      "include",
23020a203aSopenharmony_ci    ]
24020a203aSopenharmony_ci
25020a203aSopenharmony_ci    if (power_manager_enable) {
26020a203aSopenharmony_ci      include_dirs += [ "idl/include" ]
27020a203aSopenharmony_ci    }
28020a203aSopenharmony_ci  }
29020a203aSopenharmony_ci
30020a203aSopenharmony_ci  ohos_source_set("usage_event_report") {
31020a203aSopenharmony_ci    branch_protector_ret = "pac_ret"
32020a203aSopenharmony_ci    sanitize = {
33020a203aSopenharmony_ci      cfi = true
34020a203aSopenharmony_ci      cfi_cross_dso = true
35020a203aSopenharmony_ci      cfi_vcall_icall_only = true
36020a203aSopenharmony_ci      debug = false
37020a203aSopenharmony_ci    }
38020a203aSopenharmony_ci    configs = [ ":usage_event_report_config" ]
39020a203aSopenharmony_ci
40020a203aSopenharmony_ci    sources = [
41020a203aSopenharmony_ci      "cache/event_db_helper.cpp",
42020a203aSopenharmony_ci      "cache/fold_app_usage_db_helper.cpp",
43020a203aSopenharmony_ci      "cache/fold_app_usage_event_factory.cpp",
44020a203aSopenharmony_ci      "cache/fold_event_cacher.cpp",
45020a203aSopenharmony_ci      "cache/json_parser.cpp",
46020a203aSopenharmony_ci      "cache/usage_event_cacher.cpp",
47020a203aSopenharmony_ci      "event/fold_app_usage_event.cpp",
48020a203aSopenharmony_ci      "event/sys_usage_event.cpp",
49020a203aSopenharmony_ci      "usage_event_report.cpp",
50020a203aSopenharmony_ci    ]
51020a203aSopenharmony_ci
52020a203aSopenharmony_ci    if (power_manager_enable) {
53020a203aSopenharmony_ci      sources += [ "idl/hiview_shutdown_callback.cpp" ]
54020a203aSopenharmony_ci    }
55020a203aSopenharmony_ci
56020a203aSopenharmony_ci    deps = [
57020a203aSopenharmony_ci      "$hiview_base:hiviewbase",
58020a203aSopenharmony_ci      "config:usageEventPipeline",
59020a203aSopenharmony_ci    ]
60020a203aSopenharmony_ci
61020a203aSopenharmony_ci    external_deps = [
62020a203aSopenharmony_ci      "ability_runtime:ability_manager",
63020a203aSopenharmony_ci      "ability_runtime:app_manager",
64020a203aSopenharmony_ci      "bounds_checking_function:libsec_shared",
65020a203aSopenharmony_ci      "bundle_framework:appexecfwk_base",
66020a203aSopenharmony_ci      "bundle_framework:appexecfwk_core",
67020a203aSopenharmony_ci      "ffrt:libffrt",
68020a203aSopenharmony_ci      "hilog:libhilog",
69020a203aSopenharmony_ci      "hisysevent:libhisysevent",
70020a203aSopenharmony_ci      "ipc:ipc_single",
71020a203aSopenharmony_ci      "jsoncpp:jsoncpp",
72020a203aSopenharmony_ci      "relational_store:native_rdb",
73020a203aSopenharmony_ci      "samgr:samgr_proxy",
74020a203aSopenharmony_ci      "window_manager:libdm",
75020a203aSopenharmony_ci    ]
76020a203aSopenharmony_ci
77020a203aSopenharmony_ci    defines = []
78020a203aSopenharmony_ci    if (power_manager_enable) {
79020a203aSopenharmony_ci      external_deps += [ "power_manager:powermgr_client" ]
80020a203aSopenharmony_ci      defines += [ "POWER_MANAGER_ENABLE" ]
81020a203aSopenharmony_ci    }
82020a203aSopenharmony_ci
83020a203aSopenharmony_ci    part_name = "hiview"
84020a203aSopenharmony_ci    subsystem_name = "hiviewdfx"
85020a203aSopenharmony_ci  }
86020a203aSopenharmony_ci
87020a203aSopenharmony_ci  ohos_source_set("usage_event_report_for_test") {
88020a203aSopenharmony_ci    configs = [ ":usage_event_report_config" ]
89020a203aSopenharmony_ci
90020a203aSopenharmony_ci    sources = [
91020a203aSopenharmony_ci      "cache/event_db_helper.cpp",
92020a203aSopenharmony_ci      "cache/fold_app_usage_db_helper.cpp",
93020a203aSopenharmony_ci      "cache/fold_app_usage_event_factory.cpp",
94020a203aSopenharmony_ci      "cache/fold_event_cacher.cpp",
95020a203aSopenharmony_ci      "cache/json_parser.cpp",
96020a203aSopenharmony_ci      "cache/usage_event_cacher.cpp",
97020a203aSopenharmony_ci      "event/fold_app_usage_event.cpp",
98020a203aSopenharmony_ci      "event/sys_usage_event.cpp",
99020a203aSopenharmony_ci      "usage_event_report.cpp",
100020a203aSopenharmony_ci    ]
101020a203aSopenharmony_ci
102020a203aSopenharmony_ci    if (power_manager_enable) {
103020a203aSopenharmony_ci      sources += [ "idl/hiview_shutdown_callback.cpp" ]
104020a203aSopenharmony_ci    }
105020a203aSopenharmony_ci
106020a203aSopenharmony_ci    deps = [
107020a203aSopenharmony_ci      "$hiview_base:hiviewbase",
108020a203aSopenharmony_ci      "config:usageEventPipeline",
109020a203aSopenharmony_ci    ]
110020a203aSopenharmony_ci
111020a203aSopenharmony_ci    external_deps = [
112020a203aSopenharmony_ci      "ability_runtime:ability_manager",
113020a203aSopenharmony_ci      "ability_runtime:app_manager",
114020a203aSopenharmony_ci      "bounds_checking_function:libsec_shared",
115020a203aSopenharmony_ci      "bundle_framework:appexecfwk_base",
116020a203aSopenharmony_ci      "bundle_framework:appexecfwk_core",
117020a203aSopenharmony_ci      "ffrt:libffrt",
118020a203aSopenharmony_ci      "hilog:libhilog",
119020a203aSopenharmony_ci      "hisysevent:libhisysevent",
120020a203aSopenharmony_ci      "ipc:ipc_single",
121020a203aSopenharmony_ci      "jsoncpp:jsoncpp",
122020a203aSopenharmony_ci      "relational_store:native_rdb",
123020a203aSopenharmony_ci      "samgr:samgr_proxy",
124020a203aSopenharmony_ci      "window_manager:libdm",
125020a203aSopenharmony_ci    ]
126020a203aSopenharmony_ci
127020a203aSopenharmony_ci    defines = []
128020a203aSopenharmony_ci    if (power_manager_enable) {
129020a203aSopenharmony_ci      external_deps += [ "power_manager:powermgr_client" ]
130020a203aSopenharmony_ci      defines += [ "POWER_MANAGER_ENABLE" ]
131020a203aSopenharmony_ci    }
132020a203aSopenharmony_ci
133020a203aSopenharmony_ci    part_name = "hiview"
134020a203aSopenharmony_ci    subsystem_name = "hiviewdfx"
135020a203aSopenharmony_ci  }
136020a203aSopenharmony_ci} else {
137020a203aSopenharmony_ci  ohos_source_set("usage_event_report") {
138020a203aSopenharmony_ci  }
139020a203aSopenharmony_ci
140020a203aSopenharmony_ci  ohos_source_set("usage_event_report_for_test") {
141020a203aSopenharmony_ci  }
142020a203aSopenharmony_ci}
143020a203aSopenharmony_ci
144020a203aSopenharmony_cigroup("unittest") {
145020a203aSopenharmony_ci  testonly = true
146020a203aSopenharmony_ci  deps = []
147020a203aSopenharmony_ci
148020a203aSopenharmony_ci  if (enable_hiview_usage_event_report_build) {
149020a203aSopenharmony_ci    deps += [
150020a203aSopenharmony_ci      "test/unittest:FoldAppUsageTest",
151020a203aSopenharmony_ci      "test/unittest:UsageEventReportCacheTest",
152020a203aSopenharmony_ci      "test/unittest:UsageEventReportTest",
153020a203aSopenharmony_ci    ]
154020a203aSopenharmony_ci  }
155020a203aSopenharmony_ci}
156020a203aSopenharmony_ci
157020a203aSopenharmony_cigroup("moduletest") {
158020a203aSopenharmony_ci  testonly = true
159020a203aSopenharmony_ci  deps = []
160020a203aSopenharmony_ci}
161