• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2021-2022 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("//build/config/components/idl_tool/idl.gni")
15import("../batterystats.gni")
16
17config("batterystats_public_config") {
18  include_dirs = [
19    "native/include",
20    "${target_gen_dir}",
21  ]
22}
23
24idl_gen_interface("batterystats_interface") {
25  sources = [ "IBatteryStats.idl" ]
26  configs = [
27    "${batterystats_utils_path}:batterystats_utils_config",
28    "${batterystats_utils_path}:coverage_flags",
29  ]
30
31  log_domainid = "0xD002962"
32  log_tag = "StatsSvc"
33  part_name = "${batterystats_part_name}"
34  subsystem_name = "powermgr"
35}
36
37ohos_source_set("batterystats_proxy") {
38  sanitize = {
39    cfi = true
40    cfi_cross_dso = true
41    debug = false
42  }
43  output_values = get_target_outputs(":batterystats_interface")
44  sources = filter_include(output_values, [ "*_proxy.cpp" ])
45  public_configs = [ ":batterystats_public_config" ]
46  configs = [
47    "${batterystats_utils_path}:batterystats_utils_config",
48    "${batterystats_utils_path}:coverage_flags",
49  ]
50  deps = [ ":batterystats_interface" ]
51  external_deps = [
52    "c_utils:utils",
53    "hilog:libhilog",
54    "ipc:ipc_single",
55    "samgr:samgr_proxy",
56  ]
57  part_name = "${batterystats_part_name}"
58  subsystem_name = "powermgr"
59}
60
61ohos_source_set("batterystats_stub") {
62  sanitize = {
63    cfi = true
64    cfi_cross_dso = true
65    debug = false
66  }
67  output_values = get_target_outputs(":batterystats_interface")
68  sources = filter_include(output_values, [ "*_stub.cpp" ])
69  sources +=
70      [ "${batterystats_frameworks_path}/native/src/battery_stats_info.cpp" ]
71  public_configs = [ ":batterystats_public_config" ]
72  configs = [
73    "${batterystats_utils_path}:batterystats_utils_config",
74    "${batterystats_utils_path}:coverage_flags",
75  ]
76  deps = [ ":batterystats_interface" ]
77  external_deps = [
78    "c_utils:utils",
79    "hilog:libhilog",
80    "ipc:ipc_core",
81    "ipc:ipc_single",
82  ]
83
84  if (has_batterystats_call_manager_part) {
85    external_deps += [ "call_manager:tel_call_manager_api" ]
86  }
87
88  if (has_batterystats_display_manager_part) {
89    external_deps += [ "display_manager:displaymgr" ]
90  }
91  external_deps += [ "ability_runtime:appkit_native" ]
92
93  part_name = "${batterystats_part_name}"
94  subsystem_name = "powermgr"
95}
96
97ohos_shared_library("batterystats_service") {
98  sanitize = {
99    cfi = true
100    cfi_cross_dso = true
101    debug = false
102  }
103  branch_protector_ret = "pac_ret"
104
105  sources = [
106    "native/src/battery_stats_core.cpp",
107    "native/src/battery_stats_detector.cpp",
108    "native/src/battery_stats_dumper.cpp",
109    "native/src/battery_stats_listener.cpp",
110    "native/src/battery_stats_parser.cpp",
111    "native/src/battery_stats_service.cpp",
112    "native/src/battery_stats_subscriber.cpp",
113    "native/src/cpu_time_reader.cpp",
114    "native/src/entities/alarm_entity.cpp",
115    "native/src/entities/audio_entity.cpp",
116    "native/src/entities/battery_stats_entity.cpp",
117    "native/src/entities/bluetooth_entity.cpp",
118    "native/src/entities/camera_entity.cpp",
119    "native/src/entities/cpu_entity.cpp",
120    "native/src/entities/flashlight_entity.cpp",
121    "native/src/entities/gnss_entity.cpp",
122    "native/src/entities/idle_entity.cpp",
123    "native/src/entities/phone_entity.cpp",
124    "native/src/entities/screen_entity.cpp",
125    "native/src/entities/sensor_entity.cpp",
126    "native/src/entities/uid_entity.cpp",
127    "native/src/entities/user_entity.cpp",
128    "native/src/entities/wakelock_entity.cpp",
129    "native/src/entities/wifi_entity.cpp",
130  ]
131
132  configs = [
133    "${batterystats_utils_path}:batterystats_utils_config",
134    "${batterystats_utils_path}:coverage_flags",
135  ]
136
137  public_configs = [ ":batterystats_public_config" ]
138
139  deps = [
140    ":batterystats_stub",
141    "${batterystats_inner_api}:batterystats_client",
142    "${batterystats_utils_path}:batterystats_utils",
143  ]
144
145  external_deps = [ "power_manager:power_permission" ]
146  external_deps += [
147    "ability_base:want",
148    "battery_manager:batterysrv_client",
149    "cJSON:cjson",
150    "c_utils:utils",
151    "common_event_service:cesfwk_innerkits",
152    "config_policy:configpolicy_util",
153    "hicollie:libhicollie",
154    "hilog:libhilog",
155    "hisysevent:libhisyseventmanager",
156    "ipc:ipc_core",
157    "os_account:libaccountkits",
158    "power_manager:power_sysparam",
159    "safwk:system_ability_fwk",
160    "samgr:samgr_proxy",
161  ]
162
163  if (has_batterystats_bluetooth_part) {
164    external_deps += [ "bluetooth:btframework" ]
165  }
166
167  if (has_batterystats_call_manager_part) {
168    external_deps += [ "call_manager:tel_call_manager_api" ]
169  }
170
171  if (has_batterystats_display_manager_part) {
172    external_deps += [ "display_manager:displaymgr" ]
173  }
174
175  if (has_batterystats_wifi_part) {
176    external_deps += [ "wifi:wifi_sdk" ]
177  }
178  if (false) {
179    defines += [ "SYS_MGR_CLIENT_ENABLE" ]
180    external_deps += [ "ability_runtime:appkit_native" ]
181  }
182
183  subsystem_name = "powermgr"
184  part_name = "${batterystats_part_name}"
185}
186
187group("service") {
188  deps = [
189    ":batterystats_service",
190    ":batterystats_stub",
191    "profile:power_average.json",
192  ]
193}
194