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