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/runninglock", 28 "native/src/setting", 29 "native/src/shutdown", 30 "native/src/suspend", 31 "native/src/wakeup", 32 "native/src/hibernate", 33 "native/src/screenoffpre", 34 ] 35 36 if (power_manager_feature_wakeup_action) { 37 include_dirs += [ "native/src/wakeup_action" ] 38 } 39} 40 41ohos_shared_library("powermgrservice") { 42 sanitize = { 43 cfi = true 44 cfi_cross_dso = true 45 debug = false 46 } 47 branch_protector_ret = "pac_ret" 48 49 sources = [ 50 "native/src/power_hdi_callback.cpp", 51 "native/src/power_mgr_dumper.cpp", 52 "native/src/power_mgr_factory.cpp", 53 "native/src/power_mgr_notify.cpp", 54 "native/src/power_mgr_service.cpp", 55 "native/src/power_mode_module.cpp", 56 "native/src/power_mode_policy.cpp", 57 "native/src/power_save_mode.cpp", 58 "native/src/power_state_machine.cpp", 59 "native/src/runninglock/running_lock_inner.cpp", 60 "native/src/runninglock/running_lock_mgr.cpp", 61 "native/src/runninglock/running_lock_proxy.cpp", 62 "native/src/runninglock/running_lock_timer_handler.cpp", 63 "native/src/screenoffpre/screen_off_pre_controller.cpp", 64 "native/src/setting/setting_helper.cpp", 65 "native/src/shutdown/shutdown_callback_holer.cpp", 66 "native/src/shutdown/shutdown_controller.cpp", 67 "native/src/shutdown/shutdown_dialog.cpp", 68 "native/src/suspend/sleep_callback_holder.cpp", 69 "native/src/suspend/suspend_controller.cpp", 70 "native/src/suspend/suspend_source_parser.cpp", 71 "native/src/suspend/suspend_sources.cpp", 72 "native/src/wakeup/wakeup_controller.cpp", 73 "native/src/wakeup/wakeup_source_parser.cpp", 74 "native/src/wakeup/wakeup_sources.cpp", 75 ] 76 77 configs = [ 78 ":powermgr_private_config", 79 "${powermgr_utils_path}:utils_config", 80 "${powermgr_utils_path}:coverage_flags", 81 ] 82 83 public_configs = [ ":powermgr_public_config" ] 84 85 public_deps = [ "${powermgr_utils_path}/setting:power_setting" ] 86 87 deps = [ 88 ":powermgr_stub", 89 "${powermgr_inner_api}:powermgr_client", 90 "${powermgr_utils_path}:power_utils", 91 "${powermgr_utils_path}/ffrt:power_ffrt", 92 "${powermgr_utils_path}/intf_wrapper:power_intf_wrapper", 93 "${powermgr_utils_path}/lib_loader:power_lib_loader", 94 "${powermgr_utils_path}/param:power_sysparam", 95 "${powermgr_utils_path}/permission:power_permission", 96 "${powermgr_utils_path}/vibrator:power_vibrator", 97 "native/src/actions:powermgr_actions", 98 ] 99 100 external_deps = [ 101 "ability_base:want", 102 "ability_runtime:ability_connect_callback_stub", 103 "ability_runtime:ability_manager", 104 "bundle_framework:appexecfwk_core", 105 "c_utils:utils", 106 "common_event_service:cesfwk_innerkits", 107 "config_policy:configpolicy_util", 108 "data_share:datashare_consumer", 109 "drivers_interface_power:libpower_proxy_1.2", 110 "ffrt:libffrt", 111 "hdf_core:libhdi", 112 "hdf_core:libpub_utils", 113 "hicollie:libhicollie", 114 "hilog:libhilog", 115 "hisysevent:libhisysevent", 116 "hitrace:hitrace_meter", 117 "image_framework:image_native", 118 "ipc:ipc_core", 119 "jsoncpp:jsoncpp", 120 "libxml2:libxml2", 121 "safwk:system_ability_fwk", 122 ] 123 124 defines = [] 125 126 if (power_manager_feature_movement) { 127 defines += [ "MSDP_MOVEMENT_ENABLE" ] 128 } 129 130 if (power_manager_feature_screen_on_timeout_check) { 131 defines += [ "SCREEN_ON_TIMEOUT_CHECK" ] 132 external_deps += [ 133 "ability_runtime:app_manager", 134 "window_manager:libwm", 135 ] 136 } 137 138 if (has_display_manager_part) { 139 defines += [ "HAS_DISPLAY_MANAGER" ] 140 external_deps += [ 141 "display_manager:displaymgr", 142 "window_manager:libdm_lite", 143 ] 144 } 145 146 if (has_device_standby_part) { 147 external_deps += [ "device_standby:standby_innerkits" ] 148 } 149 150 if (has_multimodalinput_input_part) { 151 external_deps += [ "input:libmmi-client" ] 152 } 153 154 if (has_sensors_sensor_part) { 155 external_deps += [ "sensor:sensor_interface_native" ] 156 } 157 158 if (power_manager_feature_poweroff_charge) { 159 external_deps += [ "battery_manager:batterysrv_client" ] 160 161 defines += [ "POWER_MANAGER_POWEROFF_CHARGE" ] 162 } 163 164 if (power_manager_feature_doubleclick_or_pickup) { 165 defines += [ "POWER_WAKEUPDOUBLE_OR_PICKUP_ENABLE" ] 166 } 167 168 if (power_manager_feature_wakeup_action) { 169 sources += [ 170 "native/src/wakeup_action/wakeup_action_controller.cpp", 171 "native/src/wakeup_action/wakeup_action_source_parser.cpp", 172 "native/src/wakeup_action/wakeup_action_sources.cpp", 173 ] 174 175 defines += [ "POWER_MANAGER_WAKEUP_ACTION" ] 176 } 177 178 if (power_manager_feature_power_dialog) { 179 defines += [ "POWER_MANAGER_POWER_DIALOG" ] 180 } 181 182 if (power_manager_feature_enable_s4) { 183 sources += [ "native/src/hibernate/hibernate_controller.cpp" ] 184 external_deps += [ 185 "init:libbegetutil", 186 "os_account:os_account_innerkits", 187 ] 188 } 189 190 if (power_manager_feature_force_sleep_broadcast) { 191 defines += [ "POWER_MANAGER_ENABLE_FORCE_SLEEP_BROADCAST" ] 192 } 193 194 if (power_manager_feature_charging_type_setting) { 195 defines += [ "POWER_MANAGER_ENABLE_CHARGING_TYPE_SETTING" ] 196 } 197 198 if (power_manager_feature_charging_type_setting && 199 defined(global_parts_info) && 200 defined(global_parts_info.powermgr_battery_manager)) { 201 external_deps += [ "battery_manager:batterysrv_client" ] 202 } 203 204 if (factory == true) { 205 defines += [ "CONFIG_FACTORY_MODE" ] 206 } 207 208 subsystem_name = "powermgr" 209 part_name = "${powermgr_part_name}" 210} 211 212config("zidl_private_config") { 213 include_dirs = [ "zidl/src/shutdown" ] 214} 215 216ohos_shared_library("powermgr_stub") { 217 sources = [ 218 "zidl/src/power_mgr_async_reply.cpp", 219 "zidl/src/power_mgr_stub.cpp", 220 "zidl/src/power_mode_callback_stub.cpp", 221 "zidl/src/power_runninglock_callback_stub.cpp", 222 "zidl/src/power_state_callback_stub.cpp", 223 "zidl/src/screen_off_pre_callback_stub.cpp", 224 "zidl/src/shutdown/shutdown_stub_delegator.cpp", 225 "zidl/src/sync_sleep_callback_stub.cpp", 226 ] 227 228 configs = [ 229 "${powermgr_utils_path}:utils_config", 230 "${powermgr_utils_path}:coverage_flags", 231 ":zidl_private_config", 232 ] 233 234 public_configs = [ ":powermgr_public_config" ] 235 236 deps = [ "${powermgr_inner_api}:powermgr_client" ] 237 238 external_deps = [ 239 "c_utils:utils", 240 "hicollie:libhicollie", 241 "hilog:libhilog", 242 "ipc:ipc_core", 243 ] 244 245 subsystem_name = "powermgr" 246 part_name = "${powermgr_part_name}" 247} 248 249group("service") { 250 deps = [ 251 ":powermgr_stub", 252 ":powermgrservice", 253 "native/profile:power_service_config", 254 ] 255} 256