17a9a4b8fSopenharmony_ci# Copyright (c) 2022 Huawei Device Co., Ltd.
27a9a4b8fSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
37a9a4b8fSopenharmony_ci# you may not use this file except in compliance with the License.
47a9a4b8fSopenharmony_ci# You may obtain a copy of the License at
57a9a4b8fSopenharmony_ci#
67a9a4b8fSopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
77a9a4b8fSopenharmony_ci#
87a9a4b8fSopenharmony_ci# Unless required by applicable law or agreed to in writing, software
97a9a4b8fSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
107a9a4b8fSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
117a9a4b8fSopenharmony_ci# See the License for the specific language governing permissions and
127a9a4b8fSopenharmony_ci# limitations under the License.
137a9a4b8fSopenharmony_ci
147a9a4b8fSopenharmony_ciimport("//foundation/resourceschedule/work_scheduler/workscheduler.gni")
157a9a4b8fSopenharmony_ci
167a9a4b8fSopenharmony_ciconfig("worksched_private_config") {
177a9a4b8fSopenharmony_ci  include_dirs = [
187a9a4b8fSopenharmony_ci    "${worksched_service_path}/zidl/include",
197a9a4b8fSopenharmony_ci    "${worksched_frameworks_path}/extension/include",
207a9a4b8fSopenharmony_ci  ]
217a9a4b8fSopenharmony_ci}
227a9a4b8fSopenharmony_ci
237a9a4b8fSopenharmony_ciconfig("worksched_public_config") {
247a9a4b8fSopenharmony_ci  include_dirs = [ "native/include" ]
257a9a4b8fSopenharmony_ci}
267a9a4b8fSopenharmony_ci
277a9a4b8fSopenharmony_ciohos_shared_library("workschedservice") {
287a9a4b8fSopenharmony_ci  shlib_type = "sa"
297a9a4b8fSopenharmony_ci  branch_protector_ret = "pac_ret"
307a9a4b8fSopenharmony_ci
317a9a4b8fSopenharmony_ci  sanitize = {
327a9a4b8fSopenharmony_ci    cfi = true
337a9a4b8fSopenharmony_ci    cfi_cross_dso = true
347a9a4b8fSopenharmony_ci    debug = false
357a9a4b8fSopenharmony_ci  }
367a9a4b8fSopenharmony_ci  sources = [
377a9a4b8fSopenharmony_ci    "native/src/conditions/battery_level_listener.cpp",
387a9a4b8fSopenharmony_ci    "native/src/conditions/battery_status_listener.cpp",
397a9a4b8fSopenharmony_ci    "native/src/conditions/charger_listener.cpp",
407a9a4b8fSopenharmony_ci    "native/src/conditions/condition_checker.cpp",
417a9a4b8fSopenharmony_ci    "native/src/conditions/group_listener.cpp",
427a9a4b8fSopenharmony_ci    "native/src/conditions/network_listener.cpp",
437a9a4b8fSopenharmony_ci    "native/src/conditions/screen_listener.cpp",
447a9a4b8fSopenharmony_ci    "native/src/conditions/storage_listener.cpp",
457a9a4b8fSopenharmony_ci    "native/src/conditions/timer_listener.cpp",
467a9a4b8fSopenharmony_ci    "native/src/event_publisher.cpp",
477a9a4b8fSopenharmony_ci    "native/src/policy/app_data_clear_listener.cpp",
487a9a4b8fSopenharmony_ci    "native/src/policy/cpu_policy.cpp",
497a9a4b8fSopenharmony_ci    "native/src/policy/memory_policy.cpp",
507a9a4b8fSopenharmony_ci    "native/src/policy/thermal_policy.cpp",
517a9a4b8fSopenharmony_ci    "native/src/scheduler_bg_task_subscriber.cpp",
527a9a4b8fSopenharmony_ci    "native/src/watchdog.cpp",
537a9a4b8fSopenharmony_ci    "native/src/work_bundle_group_change_callback.cpp",
547a9a4b8fSopenharmony_ci    "native/src/work_conn_manager.cpp",
557a9a4b8fSopenharmony_ci    "native/src/work_datashare_helper.cpp",
567a9a4b8fSopenharmony_ci    "native/src/work_event_handler.cpp",
577a9a4b8fSopenharmony_ci    "native/src/work_policy_manager.cpp",
587a9a4b8fSopenharmony_ci    "native/src/work_queue.cpp",
597a9a4b8fSopenharmony_ci    "native/src/work_queue_event_handler.cpp",
607a9a4b8fSopenharmony_ci    "native/src/work_queue_manager.cpp",
617a9a4b8fSopenharmony_ci    "native/src/work_scheduler_connection.cpp",
627a9a4b8fSopenharmony_ci    "native/src/work_scheduler_service.cpp",
637a9a4b8fSopenharmony_ci    "native/src/work_standby_state_change_callback.cpp",
647a9a4b8fSopenharmony_ci    "native/src/work_status.cpp",
657a9a4b8fSopenharmony_ci    "zidl/src/work_sched_service_stub.cpp",
667a9a4b8fSopenharmony_ci    "zidl/src/work_scheduler_proxy.cpp",
677a9a4b8fSopenharmony_ci  ]
687a9a4b8fSopenharmony_ci
697a9a4b8fSopenharmony_ci  configs = [ ":worksched_private_config" ]
707a9a4b8fSopenharmony_ci
717a9a4b8fSopenharmony_ci  public_configs = [ ":worksched_public_config" ]
727a9a4b8fSopenharmony_ci
737a9a4b8fSopenharmony_ci  deps = [
747a9a4b8fSopenharmony_ci    "${worksched_frameworks_path}:workschedclient",
757a9a4b8fSopenharmony_ci    "${worksched_utils_path}:workschedutils",
767a9a4b8fSopenharmony_ci  ]
777a9a4b8fSopenharmony_ci
787a9a4b8fSopenharmony_ci  external_deps = [
797a9a4b8fSopenharmony_ci    "ability_base:want",
807a9a4b8fSopenharmony_ci    "ability_base:zuri",
817a9a4b8fSopenharmony_ci    "ability_runtime:ability_connect_callback_stub",
827a9a4b8fSopenharmony_ci    "ability_runtime:ability_manager",
837a9a4b8fSopenharmony_ci    "ability_runtime:wantagent_innerkits",
847a9a4b8fSopenharmony_ci    "access_token:libaccesstoken_sdk",
857a9a4b8fSopenharmony_ci    "access_token:libtokenid_sdk",
867a9a4b8fSopenharmony_ci    "bundle_framework:appexecfwk_base",
877a9a4b8fSopenharmony_ci    "bundle_framework:appexecfwk_core",
887a9a4b8fSopenharmony_ci    "c_utils:utils",
897a9a4b8fSopenharmony_ci    "common_event_service:cesfwk_innerkits",
907a9a4b8fSopenharmony_ci    "config_policy:configpolicy_util",
917a9a4b8fSopenharmony_ci    "data_share:datashare_consumer",
927a9a4b8fSopenharmony_ci    "eventhandler:libeventhandler",
937a9a4b8fSopenharmony_ci    "ffrt:libffrt",
947a9a4b8fSopenharmony_ci    "hilog:libhilog",
957a9a4b8fSopenharmony_ci    "hisysevent:libhisysevent",
967a9a4b8fSopenharmony_ci    "hitrace:hitrace_meter",
977a9a4b8fSopenharmony_ci    "hiview:libucollection_client",
987a9a4b8fSopenharmony_ci    "init:libbegetutil",
997a9a4b8fSopenharmony_ci    "ipc:ipc_single",
1007a9a4b8fSopenharmony_ci    "resource_schedule_service:ressched_client",
1017a9a4b8fSopenharmony_ci    "safwk:system_ability_fwk",
1027a9a4b8fSopenharmony_ci    "samgr:samgr_proxy",
1037a9a4b8fSopenharmony_ci    "time_service:time_client",
1047a9a4b8fSopenharmony_ci  ]
1057a9a4b8fSopenharmony_ci
1067a9a4b8fSopenharmony_ci  defines = []
1077a9a4b8fSopenharmony_ci  if (bundle_active_enable) {
1087a9a4b8fSopenharmony_ci    external_deps += [ "device_usage_statistics:usagestatsinner" ]
1097a9a4b8fSopenharmony_ci    defines += [ "DEVICE_USAGE_STATISTICS_ENABLE" ]
1107a9a4b8fSopenharmony_ci  }
1117a9a4b8fSopenharmony_ci  if (device_standby_enable) {
1127a9a4b8fSopenharmony_ci    external_deps += [ "device_standby:standby_innerkits" ]
1137a9a4b8fSopenharmony_ci    defines += [ "DEVICE_STANDBY_ENABLE" ]
1147a9a4b8fSopenharmony_ci  }
1157a9a4b8fSopenharmony_ci  if (resourceschedule_bgtaskmgr_enable) {
1167a9a4b8fSopenharmony_ci    external_deps += [ "background_task_mgr:bgtaskmgr_innerkits" ]
1177a9a4b8fSopenharmony_ci    defines += [ "RESOURCESCHEDULE_BGTASKMGR_ENABLE" ]
1187a9a4b8fSopenharmony_ci  }
1197a9a4b8fSopenharmony_ci  if (powermgr_battery_manager_enable) {
1207a9a4b8fSopenharmony_ci    external_deps += [ "battery_manager:batterysrv_client" ]
1217a9a4b8fSopenharmony_ci    defines += [ "POWERMGR_BATTERY_MANAGER_ENABLE" ]
1227a9a4b8fSopenharmony_ci  }
1237a9a4b8fSopenharmony_ci  if (powermgr_thermal_manager_enable) {
1247a9a4b8fSopenharmony_ci    external_deps += [ "thermal_manager:thermalsrv_client" ]
1257a9a4b8fSopenharmony_ci    defines += [ "POWERMGR_THERMAL_MANAGER_ENABLE" ]
1267a9a4b8fSopenharmony_ci  }
1277a9a4b8fSopenharmony_ci  if (powermgr_power_manager_enable) {
1287a9a4b8fSopenharmony_ci    external_deps += [ "power_manager:powermgr_client" ]
1297a9a4b8fSopenharmony_ci    defines += [ "POWERMGR_POWER_MANAGER_ENABLE" ]
1307a9a4b8fSopenharmony_ci    sources += [ "native/src/policy/power_mode_policy.cpp" ]
1317a9a4b8fSopenharmony_ci  }
1327a9a4b8fSopenharmony_ci  if (workscheduler_with_communication_netmanager_base_enable) {
1337a9a4b8fSopenharmony_ci    defines += [ "COMMUNICATION_NETMANAGER_BASE_ENABLE" ]
1347a9a4b8fSopenharmony_ci    external_deps += [ "netmanager_base:net_conn_manager_if" ]
1357a9a4b8fSopenharmony_ci  }
1367a9a4b8fSopenharmony_ci  if (workscheduler_hicollie_enable) {
1377a9a4b8fSopenharmony_ci    external_deps += [ "hicollie:libhicollie" ]
1387a9a4b8fSopenharmony_ci    defines += [ "HICOLLIE_ENABLE" ]
1397a9a4b8fSopenharmony_ci  }
1407a9a4b8fSopenharmony_ci  subsystem_name = "resourceschedule"
1417a9a4b8fSopenharmony_ci  part_name = "${worksched_native_part_name}"
1427a9a4b8fSopenharmony_ci}
1437a9a4b8fSopenharmony_ci
1447a9a4b8fSopenharmony_ciohos_static_library("workschedservice_static") {
1457a9a4b8fSopenharmony_ci  sanitize = {
1467a9a4b8fSopenharmony_ci    cfi = true
1477a9a4b8fSopenharmony_ci    cfi_cross_dso = true
1487a9a4b8fSopenharmony_ci    debug = false
1497a9a4b8fSopenharmony_ci  }
1507a9a4b8fSopenharmony_ci  sources = [
1517a9a4b8fSopenharmony_ci    "native/src/conditions/battery_level_listener.cpp",
1527a9a4b8fSopenharmony_ci    "native/src/conditions/battery_status_listener.cpp",
1537a9a4b8fSopenharmony_ci    "native/src/conditions/charger_listener.cpp",
1547a9a4b8fSopenharmony_ci    "native/src/conditions/condition_checker.cpp",
1557a9a4b8fSopenharmony_ci    "native/src/conditions/group_listener.cpp",
1567a9a4b8fSopenharmony_ci    "native/src/conditions/network_listener.cpp",
1577a9a4b8fSopenharmony_ci    "native/src/conditions/screen_listener.cpp",
1587a9a4b8fSopenharmony_ci    "native/src/conditions/storage_listener.cpp",
1597a9a4b8fSopenharmony_ci    "native/src/conditions/timer_listener.cpp",
1607a9a4b8fSopenharmony_ci    "native/src/event_publisher.cpp",
1617a9a4b8fSopenharmony_ci    "native/src/policy/app_data_clear_listener.cpp",
1627a9a4b8fSopenharmony_ci    "native/src/policy/cpu_policy.cpp",
1637a9a4b8fSopenharmony_ci    "native/src/policy/memory_policy.cpp",
1647a9a4b8fSopenharmony_ci    "native/src/policy/thermal_policy.cpp",
1657a9a4b8fSopenharmony_ci    "native/src/scheduler_bg_task_subscriber.cpp",
1667a9a4b8fSopenharmony_ci    "native/src/watchdog.cpp",
1677a9a4b8fSopenharmony_ci    "native/src/work_bundle_group_change_callback.cpp",
1687a9a4b8fSopenharmony_ci    "native/src/work_conn_manager.cpp",
1697a9a4b8fSopenharmony_ci    "native/src/work_datashare_helper.cpp",
1707a9a4b8fSopenharmony_ci    "native/src/work_event_handler.cpp",
1717a9a4b8fSopenharmony_ci    "native/src/work_policy_manager.cpp",
1727a9a4b8fSopenharmony_ci    "native/src/work_queue.cpp",
1737a9a4b8fSopenharmony_ci    "native/src/work_queue_event_handler.cpp",
1747a9a4b8fSopenharmony_ci    "native/src/work_queue_manager.cpp",
1757a9a4b8fSopenharmony_ci    "native/src/work_scheduler_connection.cpp",
1767a9a4b8fSopenharmony_ci    "native/src/work_scheduler_service.cpp",
1777a9a4b8fSopenharmony_ci    "native/src/work_standby_state_change_callback.cpp",
1787a9a4b8fSopenharmony_ci    "native/src/work_status.cpp",
1797a9a4b8fSopenharmony_ci    "zidl/src/work_sched_service_stub.cpp",
1807a9a4b8fSopenharmony_ci    "zidl/src/work_scheduler_proxy.cpp",
1817a9a4b8fSopenharmony_ci  ]
1827a9a4b8fSopenharmony_ci
1837a9a4b8fSopenharmony_ci  configs = [ ":worksched_private_config" ]
1847a9a4b8fSopenharmony_ci
1857a9a4b8fSopenharmony_ci  public_configs = [ ":worksched_public_config" ]
1867a9a4b8fSopenharmony_ci
1877a9a4b8fSopenharmony_ci  deps = [
1887a9a4b8fSopenharmony_ci    "${worksched_frameworks_path}:workschedclient",
1897a9a4b8fSopenharmony_ci    "${worksched_utils_path}:workschedutils",
1907a9a4b8fSopenharmony_ci  ]
1917a9a4b8fSopenharmony_ci
1927a9a4b8fSopenharmony_ci  external_deps = [
1937a9a4b8fSopenharmony_ci    "ability_base:want",
1947a9a4b8fSopenharmony_ci    "ability_base:zuri",
1957a9a4b8fSopenharmony_ci    "ability_runtime:ability_manager",
1967a9a4b8fSopenharmony_ci    "ability_runtime:wantagent_innerkits",
1977a9a4b8fSopenharmony_ci    "access_token:libaccesstoken_sdk",
1987a9a4b8fSopenharmony_ci    "access_token:libtokenid_sdk",
1997a9a4b8fSopenharmony_ci    "bundle_framework:appexecfwk_base",
2007a9a4b8fSopenharmony_ci    "bundle_framework:appexecfwk_core",
2017a9a4b8fSopenharmony_ci    "c_utils:utils",
2027a9a4b8fSopenharmony_ci    "common_event_service:cesfwk_innerkits",
2037a9a4b8fSopenharmony_ci    "config_policy:configpolicy_util",
2047a9a4b8fSopenharmony_ci    "data_share:datashare_consumer",
2057a9a4b8fSopenharmony_ci    "eventhandler:libeventhandler",
2067a9a4b8fSopenharmony_ci    "ffrt:libffrt",
2077a9a4b8fSopenharmony_ci    "hilog:libhilog",
2087a9a4b8fSopenharmony_ci    "hisysevent:libhisysevent",
2097a9a4b8fSopenharmony_ci    "hitrace:hitrace_meter",
2107a9a4b8fSopenharmony_ci    "hiview:libucollection_client",
2117a9a4b8fSopenharmony_ci    "init:libbegetutil",
2127a9a4b8fSopenharmony_ci    "ipc:ipc_single",
2137a9a4b8fSopenharmony_ci    "resource_schedule_service:ressched_client",
2147a9a4b8fSopenharmony_ci    "safwk:system_ability_fwk",
2157a9a4b8fSopenharmony_ci    "samgr:samgr_proxy",
2167a9a4b8fSopenharmony_ci    "time_service:time_client",
2177a9a4b8fSopenharmony_ci  ]
2187a9a4b8fSopenharmony_ci
2197a9a4b8fSopenharmony_ci  defines = [ "WORK_SCHEDULER_TEST" ]
2207a9a4b8fSopenharmony_ci  if (bundle_active_enable) {
2217a9a4b8fSopenharmony_ci    external_deps += [ "device_usage_statistics:usagestatsinner" ]
2227a9a4b8fSopenharmony_ci    defines += [ "DEVICE_USAGE_STATISTICS_ENABLE" ]
2237a9a4b8fSopenharmony_ci  }
2247a9a4b8fSopenharmony_ci  if (device_standby_enable) {
2257a9a4b8fSopenharmony_ci    external_deps += [ "device_standby:standby_innerkits" ]
2267a9a4b8fSopenharmony_ci    defines += [ "DEVICE_STANDBY_ENABLE" ]
2277a9a4b8fSopenharmony_ci  }
2287a9a4b8fSopenharmony_ci  if (resourceschedule_bgtaskmgr_enable) {
2297a9a4b8fSopenharmony_ci    external_deps += [ "background_task_mgr:bgtaskmgr_innerkits" ]
2307a9a4b8fSopenharmony_ci    defines += [ "RESOURCESCHEDULE_BGTASKMGR_ENABLE" ]
2317a9a4b8fSopenharmony_ci  }
2327a9a4b8fSopenharmony_ci  if (powermgr_battery_manager_enable) {
2337a9a4b8fSopenharmony_ci    external_deps += [ "battery_manager:batterysrv_client" ]
2347a9a4b8fSopenharmony_ci    defines += [ "POWERMGR_BATTERY_MANAGER_ENABLE" ]
2357a9a4b8fSopenharmony_ci  }
2367a9a4b8fSopenharmony_ci  if (powermgr_thermal_manager_enable) {
2377a9a4b8fSopenharmony_ci    external_deps += [ "thermal_manager:thermalsrv_client" ]
2387a9a4b8fSopenharmony_ci    defines += [ "POWERMGR_THERMAL_MANAGER_ENABLE" ]
2397a9a4b8fSopenharmony_ci  }
2407a9a4b8fSopenharmony_ci  if (powermgr_power_manager_enable) {
2417a9a4b8fSopenharmony_ci    external_deps += [ "power_manager:powermgr_client" ]
2427a9a4b8fSopenharmony_ci    defines += [ "POWERMGR_POWER_MANAGER_ENABLE" ]
2437a9a4b8fSopenharmony_ci    sources += [ "native/src/policy/power_mode_policy.cpp" ]
2447a9a4b8fSopenharmony_ci  }
2457a9a4b8fSopenharmony_ci  if (workscheduler_with_communication_netmanager_base_enable) {
2467a9a4b8fSopenharmony_ci    defines += [ "COMMUNICATION_NETMANAGER_BASE_ENABLE" ]
2477a9a4b8fSopenharmony_ci    external_deps += [ "netmanager_base:net_conn_manager_if" ]
2487a9a4b8fSopenharmony_ci  }
2497a9a4b8fSopenharmony_ci  if (workscheduler_hicollie_enable) {
2507a9a4b8fSopenharmony_ci    external_deps += [ "hicollie:libhicollie" ]
2517a9a4b8fSopenharmony_ci    defines += [ "HICOLLIE_ENABLE" ]
2527a9a4b8fSopenharmony_ci  }
2537a9a4b8fSopenharmony_ci
2547a9a4b8fSopenharmony_ci  subsystem_name = "resourceschedule"
2557a9a4b8fSopenharmony_ci  part_name = "${worksched_native_part_name}"
2567a9a4b8fSopenharmony_ci}
257