199552fe9Sopenharmony_ci# Copyright (c) 2024 Huawei Device Co., Ltd.
299552fe9Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
399552fe9Sopenharmony_ci# you may not use this file except in compliance with the License.
499552fe9Sopenharmony_ci# You may obtain a copy of the License at
599552fe9Sopenharmony_ci#
699552fe9Sopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
799552fe9Sopenharmony_ci#
899552fe9Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software
999552fe9Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
1099552fe9Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1199552fe9Sopenharmony_ci# See the License for the specific language governing permissions and
1299552fe9Sopenharmony_ci# limitations under the License.
1399552fe9Sopenharmony_ci
1499552fe9Sopenharmony_ciimport("//build/ohos.gni")
1599552fe9Sopenharmony_ciimport("//foundation/resourceschedule/device_standby/standby_service.gni")
1699552fe9Sopenharmony_ci
1799552fe9Sopenharmony_ciconfig("standby_plugin_config") {
1899552fe9Sopenharmony_ci  include_dirs = [
1999552fe9Sopenharmony_ci    "${standby_plugins_path}/ext/include",
2099552fe9Sopenharmony_ci    "${standby_service_constraints_path}/include",
2199552fe9Sopenharmony_ci    "${standby_service_message_listener_path}/include",
2299552fe9Sopenharmony_ci    "${standby_service_standby_state_path}/include",
2399552fe9Sopenharmony_ci    "${standby_service_strategy_path}/include",
2499552fe9Sopenharmony_ci    "${standby_utils_common_path}/include",
2599552fe9Sopenharmony_ci    "${standby_utils_policy_path}/include",
2699552fe9Sopenharmony_ci  ]
2799552fe9Sopenharmony_ci}
2899552fe9Sopenharmony_ci
2999552fe9Sopenharmony_ciStandbyPluginSrc = [
3099552fe9Sopenharmony_ci  "${standby_plugins_path}/ext/src/base_state.cpp",
3199552fe9Sopenharmony_ci  "${standby_plugins_path}/ext/src/istate_manager_adapter.cpp",
3299552fe9Sopenharmony_ci  "${standby_service_constraints_path}/src/charge_state_monitor.cpp",
3399552fe9Sopenharmony_ci  "${standby_service_constraints_path}/src/constraint_manager_adapter.cpp",
3499552fe9Sopenharmony_ci  "${standby_service_message_listener_path}/src/listener_manager_adapter.cpp",
3599552fe9Sopenharmony_ci  "${standby_service_standby_state_path}/src/dark_state.cpp",
3699552fe9Sopenharmony_ci  "${standby_service_standby_state_path}/src/export_plugin.cpp",
3799552fe9Sopenharmony_ci  "${standby_service_standby_state_path}/src/maintenance_state.cpp",
3899552fe9Sopenharmony_ci  "${standby_service_standby_state_path}/src/nap_state.cpp",
3999552fe9Sopenharmony_ci  "${standby_service_standby_state_path}/src/sleep_state.cpp",
4099552fe9Sopenharmony_ci  "${standby_service_standby_state_path}/src/state_manager_adapter.cpp",
4199552fe9Sopenharmony_ci  "${standby_service_standby_state_path}/src/working_state.cpp",
4299552fe9Sopenharmony_ci  "${standby_service_strategy_path}/src/base_network_strategy.cpp",
4399552fe9Sopenharmony_ci  "${standby_service_strategy_path}/src/network_strategy.cpp",
4499552fe9Sopenharmony_ci  "${standby_service_strategy_path}/src/running_lock_strategy.cpp",
4599552fe9Sopenharmony_ci  "${standby_service_strategy_path}/src/timer_strategy.cpp",
4699552fe9Sopenharmony_ci  "${standby_service_strategy_path}/src/strategy_manager_adapter.cpp",
4799552fe9Sopenharmony_ci]
4899552fe9Sopenharmony_ci
4999552fe9Sopenharmony_ciStandbyPluginExternalDeps = [
5099552fe9Sopenharmony_ci  "ability_base:want",
5199552fe9Sopenharmony_ci  "ability_runtime:app_manager",
5299552fe9Sopenharmony_ci  "ability_runtime:wantagent_innerkits",
5399552fe9Sopenharmony_ci  "access_token:libaccesstoken_sdk",
5499552fe9Sopenharmony_ci  "c_utils:utils",
5599552fe9Sopenharmony_ci  "common_event_service:cesfwk_innerkits",
5699552fe9Sopenharmony_ci  "eventhandler:libeventhandler",
5799552fe9Sopenharmony_ci  "hilog:libhilog",
5899552fe9Sopenharmony_ci  "init:libbegetutil",
5999552fe9Sopenharmony_ci  "ipc:ipc_single",
6099552fe9Sopenharmony_ci  "safwk:system_ability_fwk",
6199552fe9Sopenharmony_ci  "samgr:samgr_proxy",
6299552fe9Sopenharmony_ci  "time_service:time_client",
6399552fe9Sopenharmony_ci]
6499552fe9Sopenharmony_ci
6599552fe9Sopenharmony_ciStandbyPluginDefine = []
6699552fe9Sopenharmony_ci
6799552fe9Sopenharmony_ciif (enable_standby_configpolicy) {
6899552fe9Sopenharmony_ci  StandbyPluginExternalDeps += [ "config_policy:configpolicy_util" ]
6999552fe9Sopenharmony_ci  StandbyPluginDefine += [ "STANDBY_CONFIG_POLICY_ENABLE" ]
7099552fe9Sopenharmony_ci}
7199552fe9Sopenharmony_ci
7299552fe9Sopenharmony_ciif (enable_background_task_mgr) {
7399552fe9Sopenharmony_ci  StandbyPluginExternalDeps += [ "background_task_mgr:bgtaskmgr_innerkits" ]
7499552fe9Sopenharmony_ci  StandbyPluginSrc += [
7599552fe9Sopenharmony_ci    "${standby_service_message_listener_path}/src/background_task_listener.cpp",
7699552fe9Sopenharmony_ci  ]
7799552fe9Sopenharmony_ci  StandbyPluginDefine += [ "ENABLE_BACKGROUND_TASK_MGR" ]
7899552fe9Sopenharmony_ci}
7999552fe9Sopenharmony_ci
8099552fe9Sopenharmony_ciif (standby_power_manager_enable) {
8199552fe9Sopenharmony_ci  StandbyPluginExternalDeps += [ "power_manager:powermgr_client" ]
8299552fe9Sopenharmony_ci  StandbyPluginDefine += [ "STANDBY_POWER_MANAGER_ENABLE" ]
8399552fe9Sopenharmony_ci}
8499552fe9Sopenharmony_ci
8599552fe9Sopenharmony_ciif (standby_battery_manager_enable) {
8699552fe9Sopenharmony_ci  StandbyPluginExternalDeps += [ "battery_manager:batterysrv_client" ]
8799552fe9Sopenharmony_ci  StandbyPluginDefine += [ "STANDBY_BATTERY_MANAGER_ENABLE" ]
8899552fe9Sopenharmony_ci}
8999552fe9Sopenharmony_ci
9099552fe9Sopenharmony_ciif (standby_multimodalinput_input_enable) {
9199552fe9Sopenharmony_ci  StandbyPluginExternalDeps += [ "input:libmmi-client" ]
9299552fe9Sopenharmony_ci  StandbyPluginDefine += [ "STANDBY_MULTIMODALINPUT_INPUT_ENABLE" ]
9399552fe9Sopenharmony_ci  StandbyPluginSrc += [
9499552fe9Sopenharmony_ci    "${standby_service_message_listener_path}/src/input_manager_listener.cpp",
9599552fe9Sopenharmony_ci  ]
9699552fe9Sopenharmony_ci}
9799552fe9Sopenharmony_ci
9899552fe9Sopenharmony_ciif (standby_sensors_sensor_enable) {
9999552fe9Sopenharmony_ci  StandbyPluginExternalDeps += [ "sensor:sensor_interface_native" ]
10099552fe9Sopenharmony_ci  StandbyPluginDefine += [ "STANDBY_SENSORS_SENSOR_ENABLE" ]
10199552fe9Sopenharmony_ci  StandbyPluginSrc +=
10299552fe9Sopenharmony_ci      [ "${standby_service_constraints_path}/src/motion_sensor_monitor.cpp" ]
10399552fe9Sopenharmony_ci}
10499552fe9Sopenharmony_ci
10599552fe9Sopenharmony_ciif (standby_communication_netmanager_base_enable) {
10699552fe9Sopenharmony_ci  StandbyPluginExternalDeps += [ "netmanager_base:net_policy_manager_if" ]
10799552fe9Sopenharmony_ci  StandbyPluginDefine += [ "STANDBY_COMMUNICATION_NETMANAGER_BASE_ENABLE" ]
10899552fe9Sopenharmony_ci}
10999552fe9Sopenharmony_ci
11099552fe9Sopenharmony_ciif (standby_rss_work_scheduler_enable) {
11199552fe9Sopenharmony_ci  StandbyPluginExternalDeps += [ "work_scheduler:workschedclient" ]
11299552fe9Sopenharmony_ci  StandbyPluginDefine += [ "STANDBY_RSS_WORK_SCHEDULER_ENABLE" ]
11399552fe9Sopenharmony_ci}
11499552fe9Sopenharmony_ci
11599552fe9Sopenharmony_ciohos_shared_library("standby_plugin") {
11699552fe9Sopenharmony_ci  branch_protector_ret = "pac_ret"
11799552fe9Sopenharmony_ci  sanitize = {
11899552fe9Sopenharmony_ci    cfi = true
11999552fe9Sopenharmony_ci    cfi_cross_dso = true
12099552fe9Sopenharmony_ci    debug = false
12199552fe9Sopenharmony_ci  }
12299552fe9Sopenharmony_ci  sources = StandbyPluginSrc
12399552fe9Sopenharmony_ci
12499552fe9Sopenharmony_ci  public_configs = [ ":standby_plugin_config" ]
12599552fe9Sopenharmony_ci
12699552fe9Sopenharmony_ci  deps = [
12799552fe9Sopenharmony_ci    "${standby_service_frameworks_path}:standby_fwk",
12899552fe9Sopenharmony_ci    "${standby_service_path}:standby_service",
12999552fe9Sopenharmony_ci    "${standby_utils_common_path}:standby_utils_common",
13099552fe9Sopenharmony_ci    "${standby_utils_policy_path}:standby_utils_policy",
13199552fe9Sopenharmony_ci  ]
13299552fe9Sopenharmony_ci
13399552fe9Sopenharmony_ci  external_deps = StandbyPluginExternalDeps
13499552fe9Sopenharmony_ci
13599552fe9Sopenharmony_ci  defines = StandbyPluginDefine
13699552fe9Sopenharmony_ci
13799552fe9Sopenharmony_ci  subsystem_name = "resourceschedule"
13899552fe9Sopenharmony_ci  part_name = "${standby_service_part_name}"
13999552fe9Sopenharmony_ci  version_script = "libstandby_plugin.versionscript"
14099552fe9Sopenharmony_ci}
14199552fe9Sopenharmony_ci
14299552fe9Sopenharmony_ciohos_static_library("standby_plugin_static") {
14399552fe9Sopenharmony_ci  branch_protector_ret = "pac_ret"
14499552fe9Sopenharmony_ci  sanitize = {
14599552fe9Sopenharmony_ci    cfi = true
14699552fe9Sopenharmony_ci    cfi_cross_dso = true
14799552fe9Sopenharmony_ci    debug = false
14899552fe9Sopenharmony_ci  }
14999552fe9Sopenharmony_ci  sources = StandbyPluginSrc
15099552fe9Sopenharmony_ci
15199552fe9Sopenharmony_ci  public_configs = [ ":standby_plugin_config" ]
15299552fe9Sopenharmony_ci
15399552fe9Sopenharmony_ci  deps = [
15499552fe9Sopenharmony_ci    "${standby_service_frameworks_path}:standby_fwk",
15599552fe9Sopenharmony_ci    "${standby_service_path}:standby_service",
15699552fe9Sopenharmony_ci    "${standby_utils_common_path}:standby_utils_common",
15799552fe9Sopenharmony_ci    "${standby_utils_policy_path}:standby_utils_policy",
15899552fe9Sopenharmony_ci  ]
15999552fe9Sopenharmony_ci
16099552fe9Sopenharmony_ci  external_deps = StandbyPluginExternalDeps
16199552fe9Sopenharmony_ci
16299552fe9Sopenharmony_ci  defines = StandbyPluginDefine
16399552fe9Sopenharmony_ci
16499552fe9Sopenharmony_ci  subsystem_name = "resourceschedule"
16599552fe9Sopenharmony_ci  part_name = "${standby_service_part_name}"
16699552fe9Sopenharmony_ci}
16799552fe9Sopenharmony_ci
16899552fe9Sopenharmony_cigroup("standby_plugin_group") {
16999552fe9Sopenharmony_ci  deps = []
17099552fe9Sopenharmony_ci  if (device_standby_plugin_enable) {
17199552fe9Sopenharmony_ci    deps += [ ":standby_plugin" ]
17299552fe9Sopenharmony_ci  }
17399552fe9Sopenharmony_ci}
174