• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2021-2023 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("../powermgr.gni")
15
16config("powermgr_public_config") {
17  include_dirs = [
18    "native/include",
19    "zidl/include",
20    "${powermgr_inner_api}/native/include",
21  ]
22}
23
24config("powermgr_private_config") {
25  include_dirs = [
26    "native/src",
27    "native/src/proximity_sensor_controller",
28    "native/src/runninglock",
29    "native/src/setting",
30    "native/src/shutdown",
31    "native/src/suspend",
32    "native/src/wakeup",
33    "native/src/hibernate",
34    "native/src/screenoffpre",
35    "native/src/watch_customized_screen_common_event",
36  ]
37
38  if (power_manager_feature_wakeup_action) {
39    include_dirs += [ "native/src/wakeup_action" ]
40  }
41}
42
43ohos_shared_library("powermgrservice") {
44  sanitize = {
45    cfi = true
46    cfi_cross_dso = true
47    debug = false
48  }
49  branch_protector_ret = "pac_ret"
50
51  sources = [
52    "native/src/power_hdi_callback.cpp",
53    "native/src/power_mgr_dumper.cpp",
54    "native/src/power_mgr_factory.cpp",
55    "native/src/power_mgr_notify.cpp",
56    "native/src/power_mgr_service.cpp",
57    "native/src/power_mode_module.cpp",
58    "native/src/power_mode_policy.cpp",
59    "native/src/power_save_mode.cpp",
60    "native/src/power_state_machine.cpp",
61    "native/src/proximity_sensor_controller/proximity_controller_base.cpp",
62    "native/src/runninglock/running_lock_inner.cpp",
63    "native/src/runninglock/running_lock_mgr.cpp",
64    "native/src/runninglock/running_lock_proxy.cpp",
65    "native/src/runninglock/running_lock_timer_handler.cpp",
66    "native/src/screenoffpre/screen_off_pre_controller.cpp",
67    "native/src/setting/setting_helper.cpp",
68    "native/src/shutdown/shutdown_callback_holer.cpp",
69    "native/src/shutdown/shutdown_controller.cpp",
70    "native/src/shutdown/shutdown_dialog.cpp",
71    "native/src/suspend/sleep_callback_holder.cpp",
72    "native/src/suspend/suspend_controller.cpp",
73    "native/src/suspend/suspend_source_parser.cpp",
74    "native/src/suspend/suspend_sources.cpp",
75    "native/src/wakeup/wakeup_controller.cpp",
76    "native/src/wakeup/wakeup_source_parser.cpp",
77    "native/src/wakeup/wakeup_sources.cpp",
78    "native/src/watch_customized_screen_common_event/customized_screen_event_rules.cpp",
79  ]
80
81  configs = [
82    ":powermgr_private_config",
83    "${powermgr_utils_path}:utils_config",
84    "${powermgr_utils_path}:coverage_flags",
85  ]
86
87  public_configs = [ ":powermgr_public_config" ]
88
89  public_deps = [ "${powermgr_utils_path}/setting:power_setting" ]
90
91  deps = [
92    ":powermgr_stub",
93    "${powermgr_inner_api}:powermgr_client",
94    "${powermgr_utils_path}:power_utils",
95    "${powermgr_utils_path}/appmgr:power_appmgr",
96    "${powermgr_utils_path}/ffrt:power_ffrt",
97    "${powermgr_utils_path}/intf_wrapper:power_intf_wrapper",
98    "${powermgr_utils_path}/lib_loader:power_lib_loader",
99    "${powermgr_utils_path}/param:power_sysparam",
100    "${powermgr_utils_path}/permission:power_permission",
101    "${powermgr_utils_path}/vibrator:power_vibrator",
102    "native/src/actions:powermgr_actions",
103  ]
104
105  external_deps = [
106    "ability_base:session_info",
107    "ability_base:want",
108    "ability_runtime:ability_connect_callback_stub",
109    "bundle_framework:appexecfwk_core",
110    "c_utils:utils",
111    "common_event_service:cesfwk_innerkits",
112    "config_policy:configpolicy_util",
113    "data_share:datashare_consumer",
114    "drivers_interface_power:libpower_proxy_1.2",
115    "ffrt:libffrt",
116    "hdf_core:libhdi",
117    "hdf_core:libpub_utils",
118    "hicollie:libhicollie",
119    "hilog:libhilog",
120    "image_framework:image_native",
121    "init:libbegetutil",
122    "ipc:ipc_core",
123    "jsoncpp:jsoncpp",
124    "libxml2:libxml2",
125    "safwk:system_ability_fwk",
126  ]
127
128  if (has_hiviewdfx_hisysevent_part) {
129    external_deps += [ "hisysevent:libhisysevent" ]
130  }
131
132  if (has_hiviewdfx_hitrace_part) {
133    external_deps += [ "hitrace:hitrace_meter" ]
134  }
135
136  if (power_manager_feature_movement) {
137    defines += [ "MSDP_MOVEMENT_ENABLE" ]
138  }
139
140  if (use_libfuzzer) {
141    defines += [ "FUZZ_TEST" ]
142  }
143
144  if (power_manager_feature_screen_on_timeout_check) {
145    defines += [ "SCREEN_ON_TIMEOUT_CHECK" ]
146    external_deps += [
147      "ability_runtime:app_manager",
148      "window_manager:libwm",
149    ]
150  }
151
152  if (has_display_manager_part) {
153    defines += [ "HAS_DISPLAY_MANAGER" ]
154    external_deps += [
155      "display_manager:displaymgr",
156      "window_manager:libdm_lite",
157    ]
158  }
159
160  if (has_device_standby_part) {
161    external_deps += [ "device_standby:standby_innerkits" ]
162  }
163
164  if (has_multimodalinput_input_part) {
165    external_deps += [ "input:libmmi-client" ]
166  }
167
168  if (has_sensors_sensor_part) {
169    external_deps += [ "sensor:sensor_interface_native" ]
170  }
171
172  if (power_manager_feature_poweroff_charge && defined(global_parts_info) &&
173      defined(global_parts_info.powermgr_battery_manager)) {
174    defines += [ "POWER_MANAGER_POWEROFF_CHARGE" ]
175    external_deps += [ "battery_manager:batterysrv_client" ]
176  }
177
178  if (power_manager_feature_doubleclick) {
179    defines += [ "POWER_DOUBLECLICK_ENABLE" ]
180  }
181
182  if (power_manager_feature_pickup) {
183    defines += [ "POWER_PICKUP_ENABLE" ]
184    if (has_sensors_sensor_part) {
185      defines += [ "POWER_PROXIMITY_PICKUP_ENABLE" ]
186    }
187  }
188
189  if (power_manager_feature_wakeup_action) {
190    sources += [
191      "native/src/wakeup_action/wakeup_action_controller.cpp",
192      "native/src/wakeup_action/wakeup_action_source_parser.cpp",
193      "native/src/wakeup_action/wakeup_action_sources.cpp",
194    ]
195
196    defines += [ "POWER_MANAGER_WAKEUP_ACTION" ]
197  }
198
199  if (power_manager_feature_power_dialog) {
200    defines += [ "POWER_MANAGER_POWER_DIALOG" ]
201  }
202
203  if (power_manager_feature_enable_s4) {
204    sources += [ "native/src/hibernate/hibernate_controller.cpp" ]
205    external_deps += [
206      "init:libbegetutil",
207      "os_account:os_account_innerkits",
208    ]
209  }
210
211  if (power_manager_feature_force_sleep_broadcast) {
212    defines += [ "POWER_MANAGER_ENABLE_FORCE_SLEEP_BROADCAST" ]
213  }
214
215  if (power_manager_feature_charging_type_setting &&
216      defined(global_parts_info) &&
217      defined(global_parts_info.powermgr_battery_manager)) {
218    defines += [ "POWER_MANAGER_ENABLE_CHARGING_TYPE_SETTING" ]
219    external_deps += [ "battery_manager:batterysrv_client" ]
220  }
221
222  if (power_manager_feature_external_screen_management) {
223    defines += [ "POWER_MANAGER_ENABLE_EXTERNAL_SCREEN_MANAGEMENT" ]
224  }
225
226  if (power_manager_feature_block_long_press) {
227    defines += [ "POWER_MANAGER_ENABLE_BLOCK_LONG_PRESS" ]
228  }
229
230  if (factory == true) {
231    defines += [ "CONFIG_FACTORY_MODE" ]
232  }
233
234  if (power_manager_feature_judging_takeover_shutdown) {
235    defines += [ "POWER_MANAGER_ENABLE_JUDGING_TAKEOVER_SHUTDOWN" ]
236  }
237
238  if (power_manager_feature_watch_limit_screen_common_event_publish) {
239    defines +=
240        [ "POWER_MANAGER_ENABLE_WATCH_CUSTOMIZED_SCREEN_COMMON_EVENT_RULES" ]
241    deps += [ "${powermgr_utils_path}/appmgr:power_appmgr" ]
242  }
243
244  if (power_manager_feature_watch_update_adapt) {
245    defines += [ "POWER_MANAGER_ENABLE_WATCH_UPDATE_ADAPT" ]
246  }
247
248  if (power_manager_feature_allow_interrupting_powerkey_off) {
249    defines += [ "POWER_MANAGER_ALLOW_INTERRUPTING_POWERKEY_OFF" ]
250  }
251
252  if (power_manager_feature_watch_boot_completed) {
253    defines += [ "POWER_MANAGER_ENABLE_WATCH_BOOT_COMPLETED" ]
254  }
255
256  subsystem_name = "powermgr"
257  part_name = "${powermgr_part_name}"
258}
259
260config("zidl_private_config") {
261  include_dirs = [ "zidl/src/shutdown" ]
262}
263
264ohos_shared_library("powermgr_stub") {
265  sources = [
266    "zidl/src/power_mgr_async_reply.cpp",
267    "zidl/src/power_mgr_stub.cpp",
268    "zidl/src/power_mode_callback_stub.cpp",
269    "zidl/src/power_runninglock_callback_stub.cpp",
270    "zidl/src/power_state_callback_stub.cpp",
271    "zidl/src/screen_off_pre_callback_stub.cpp",
272    "zidl/src/shutdown/shutdown_stub_delegator.cpp",
273    "zidl/src/sync_sleep_callback_stub.cpp",
274  ]
275
276  configs = [
277    "${powermgr_utils_path}:utils_config",
278    "${powermgr_utils_path}:coverage_flags",
279    ":zidl_private_config",
280  ]
281
282  public_configs = [ ":powermgr_public_config" ]
283
284  deps = [ "${powermgr_inner_api}:powermgr_client" ]
285
286  external_deps = [
287    "c_utils:utils",
288    "hicollie:libhicollie",
289    "hilog:libhilog",
290    "ipc:ipc_core",
291  ]
292
293  subsystem_name = "powermgr"
294  part_name = "${powermgr_part_name}"
295}
296
297group("service") {
298  deps = [
299    ":powermgr_stub",
300    ":powermgrservice",
301    "native/profile:power_service_config",
302  ]
303}
304