• 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_mgr_service_ipc_adapter.cpp",
58    "native/src/power_mode_module.cpp",
59    "native/src/power_mode_policy.cpp",
60    "native/src/power_save_mode.cpp",
61    "native/src/power_state_machine.cpp",
62    "native/src/proximity_sensor_controller/proximity_controller_base.cpp",
63    "native/src/runninglock/running_lock_inner.cpp",
64    "native/src/runninglock/running_lock_mgr.cpp",
65    "native/src/runninglock/running_lock_proxy.cpp",
66    "native/src/runninglock/running_lock_timer_handler.cpp",
67    "native/src/screenoffpre/screen_off_pre_controller.cpp",
68    "native/src/setting/setting_helper.cpp",
69    "native/src/shutdown/shutdown_callback_holer.cpp",
70    "native/src/shutdown/shutdown_controller.cpp",
71    "native/src/shutdown/shutdown_dialog.cpp",
72    "native/src/suspend/sleep_callback_holder.cpp",
73    "native/src/suspend/suspend_controller.cpp",
74    "native/src/suspend/suspend_source_parser.cpp",
75    "native/src/suspend/suspend_sources.cpp",
76    "native/src/wakeup/wakeup_controller.cpp",
77    "native/src/wakeup/wakeup_source_parser.cpp",
78    "native/src/wakeup/wakeup_sources.cpp",
79    "native/src/watch_customized_screen_common_event/customized_screen_event_rules.cpp",
80  ]
81
82  configs = [
83    ":powermgr_private_config",
84    "${powermgr_utils_path}:utils_config",
85    "${powermgr_utils_path}:coverage_flags",
86  ]
87
88  public_configs = [
89    ":powermgr_public_config",
90    "${powermgr_inner_api}:powermgr_ipc_config"
91  ]
92
93  public_deps = [ "${powermgr_utils_path}/setting:power_setting" ]
94
95  deps = [
96    "${powermgr_inner_api}:powermgr_client",
97    "${powermgr_inner_api}:powermgr_stub",
98    "${powermgr_utils_path}:power_utils",
99    "${powermgr_utils_path}/ffrt:power_ffrt",
100    "${powermgr_utils_path}/hookmgr:power_hookmgr",
101    "${powermgr_utils_path}/intf_wrapper:power_intf_wrapper",
102    "${powermgr_utils_path}/lib_loader:power_lib_loader",
103    "${powermgr_utils_path}/param:power_sysparam",
104    "${powermgr_utils_path}/permission:power_permission",
105    "${powermgr_utils_path}/vibrator:power_vibrator",
106    "native/src/actions:powermgr_actions",
107  ]
108
109  external_deps = [
110    "ability_base:session_info",
111    "ability_base:want",
112    "ability_runtime:ability_connect_callback_stub",
113    "bundle_framework:appexecfwk_core",
114    "cJSON:cjson",
115    "c_utils:utils",
116    "common_event_service:cesfwk_innerkits",
117    "config_policy:configpolicy_util",
118    "data_share:datashare_consumer",
119    "drivers_interface_power:libpower_proxy_1.2",
120    "drivers_interface_power:libpower_proxy_1.3",
121    "eventhandler:libeventhandler",
122    "ffrt:libffrt",
123    "graphic_2d:librender_service_base",
124    "hdf_core:libhdi",
125    "hdf_core:libpub_utils",
126    "hicollie:libhicollie",
127    "hilog:libhilog",
128    "image_framework:image_native",
129    "init:libbegetutil",
130    "ipc:ipc_core",
131    "libxml2:libxml2",
132    "safwk:system_ability_fwk",
133    "samgr:samgr_proxy",
134    "window_manager:libdm_lite",
135    "window_manager:libwm_lite",
136  ]
137
138  if (power_manager_feature_tv_dreaming) {
139    defines += [ "POWER_MANAGER_TV_DREAMING" ]
140  }
141
142  if (has_hiviewdfx_hisysevent_part) {
143    external_deps += [ "hisysevent:libhisysevent" ]
144  }
145
146  if (has_hiviewdfx_hitrace_part) {
147    external_deps += [ "hitrace:hitrace_meter" ]
148  }
149
150  if (power_manager_feature_movement) {
151    defines += [ "MSDP_MOVEMENT_ENABLE" ]
152  }
153
154  if (use_libfuzzer) {
155    defines += [ "FUZZ_TEST" ]
156  }
157
158  if (power_manager_feature_screen_on_timeout_check) {
159    defines += [ "SCREEN_ON_TIMEOUT_CHECK" ]
160    external_deps += [
161      "ability_runtime:app_manager",
162      "window_manager:libwm",
163    ]
164  }
165
166  if (has_display_manager_part) {
167    defines += [ "HAS_DISPLAY_MANAGER" ]
168    external_deps += [
169      "display_manager:displaymgr",
170    ]
171  }
172
173  if (has_device_standby_part) {
174    external_deps += [ "device_standby:standby_innerkits" ]
175  }
176
177  if (has_multimodalinput_input_part) {
178    external_deps += [ "input:libmmi-client" ]
179  }
180
181  if (has_sensors_sensor_part) {
182    external_deps += [ "sensor:sensor_interface_native" ]
183  }
184
185  if (power_manager_feature_doubleclick) {
186    defines += [ "POWER_DOUBLECLICK_ENABLE" ]
187  }
188
189  if (power_manager_feature_pickup) {
190    defines += [ "POWER_PICKUP_ENABLE" ]
191    if (has_sensors_sensor_part) {
192      defines += [ "POWER_PROXIMITY_PICKUP_ENABLE" ]
193    }
194  }
195
196  if (power_manager_feature_disable_auto_displayoff) {
197    defines += [ "POWER_MANAGER_DISABLE_AUTO_DISPLAYOFF" ]
198  }
199
200  if (power_manager_feature_wakeup_action) {
201    sources += [
202      "native/src/wakeup_action/wakeup_action_controller.cpp",
203      "native/src/wakeup_action/wakeup_action_source_parser.cpp",
204      "native/src/wakeup_action/wakeup_action_sources.cpp",
205    ]
206
207    defines += [ "POWER_MANAGER_WAKEUP_ACTION" ]
208  }
209
210  if (power_manager_feature_power_dialog) {
211    defines += [ "POWER_MANAGER_POWER_DIALOG" ]
212  }
213
214  if (power_manager_feature_enable_s4) {
215    sources += [ "native/src/hibernate/hibernate_controller.cpp" ]
216    external_deps += [
217      "init:libbegetutil",
218      "os_account:os_account_innerkits",
219    ]
220  }
221
222  if (power_manager_feature_force_sleep_broadcast) {
223    defines += [ "POWER_MANAGER_ENABLE_FORCE_SLEEP_BROADCAST" ]
224  }
225
226  if (power_manager_feature_charging_type_setting &&
227      defined(global_parts_info) &&
228      defined(global_parts_info.powermgr_battery_manager)) {
229    defines += [ "POWER_MANAGER_ENABLE_CHARGING_TYPE_SETTING" ]
230    external_deps += [ "battery_manager:batterysrv_client" ]
231  }
232
233  if (power_manager_feature_external_screen_management) {
234    defines += [ "POWER_MANAGER_ENABLE_EXTERNAL_SCREEN_MANAGEMENT" ]
235  }
236
237  if (power_manager_feature_block_long_press) {
238    defines += [ "POWER_MANAGER_ENABLE_BLOCK_LONG_PRESS" ]
239  }
240
241  if (factory == true) {
242    defines += [ "CONFIG_FACTORY_MODE" ]
243  }
244
245  if (power_manager_feature_judging_takeover_shutdown) {
246    defines += [ "POWER_MANAGER_ENABLE_JUDGING_TAKEOVER_SHUTDOWN" ]
247  }
248
249  if (power_manager_feature_watch_limit_screen_common_event_publish) {
250    defines +=
251        [ "POWER_MANAGER_ENABLE_WATCH_CUSTOMIZED_SCREEN_COMMON_EVENT_RULES" ]
252    deps += [ "${powermgr_utils_path}/appmgr:power_appmgr" ]
253  }
254
255  if (power_manager_feature_watch_update_adapt) {
256    defines += [ "POWER_MANAGER_ENABLE_WATCH_UPDATE_ADAPT" ]
257  }
258
259  if (power_manager_feature_allow_interrupting_powerkey_off) {
260    defines += [ "POWER_MANAGER_ALLOW_INTERRUPTING_POWERKEY_OFF" ]
261  }
262
263  if (power_manager_feature_watch_boot_completed) {
264    defines += [ "POWER_MANAGER_ENABLE_WATCH_BOOT_COMPLETED" ]
265  }
266
267  if (power_manager_feature_surport_takeover_suspend) {
268    sources += [
269      "native/src/suspend/suspend_takeover_callback_holder.cpp",
270    ]
271    defines += [ "POWER_MANAGER_TAKEOVER_SUSPEND" ]
272  }
273
274  subsystem_name = "powermgr"
275  part_name = "${powermgr_part_name}"
276}
277
278group("service") {
279  deps = [
280    ":powermgrservice",
281    "native/profile:power_service_config",
282    "${powermgr_inner_api}:powermgr_stub",
283  ]
284}
285