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