1# Copyright (c) 2022 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("//build/test.gni") 15import("//foundation/resourceschedule/background_task_mgr/bgtaskmgr.gni") 16 17config("bgtaskmgr_service_public_config") { 18 include_dirs = [ 19 "common/include", 20 "continuous_task/include", 21 "core/include", 22 "transient_task/include", 23 "test/include", 24 "efficiency_resources/include", 25 ] 26} 27 28BgTaskMgrServicecSrc = [ 29 "common/src/app_state_observer.cpp", 30 "common/src/bgtask_config.cpp", 31 "common/src/bgtask_hitrace_chain.cpp", 32 "common/src/bundle_manager_helper.cpp", 33 "common/src/data_storage_helper.cpp", 34 "common/src/report_hisysevent_data.cpp", 35 "common/src/system_event_observer.cpp", 36 "common/src/time_provider.cpp", 37 "continuous_task/src/bg_continuous_task_mgr.cpp", 38 "continuous_task/src/config_change_observer.cpp", 39 "continuous_task/src/continuous_task_record.cpp", 40 "continuous_task/src/notification_tools.cpp", 41 "core/src/background_task_mgr_service.cpp", 42 "efficiency_resources/src/bg_efficiency_resources_mgr.cpp", 43 "efficiency_resources/src/resource_application_record.cpp", 44 "efficiency_resources/src/resources_subscriber_mgr.cpp", 45 "transient_task/src/bg_transient_task_mgr.cpp", 46 "transient_task/src/bgtask_common.cpp", 47 "transient_task/src/decision_maker.cpp", 48 "transient_task/src/delay_suspend_info_ex.cpp", 49 "transient_task/src/device_info_manager.cpp", 50 "transient_task/src/event_hub.cpp", 51 "transient_task/src/input_manager.cpp", 52 "transient_task/src/pkg_delay_suspend_info.cpp", 53 "transient_task/src/suspend_controller.cpp", 54 "transient_task/src/timer_manager.cpp", 55 "transient_task/src/watchdog.cpp", 56] 57 58ohos_shared_library("bgtaskmgr_service") { 59 branch_protector_ret = "pac_ret" 60 sanitize = { 61 cfi = true 62 cfi_cross_dso = true 63 debug = false 64 } 65 if (!use_clang_coverage) { 66 shlib_type = "sa" 67 } 68 69 cflags_cc = [ 70 "-fvisibility=hidden", 71 "-fdata-sections", 72 "-ffunction-sections", 73 "-fstack-protector-strong", 74 "-fvisibility-inlines-hidden", 75 "-Os", 76 ] 77 sources = BgTaskMgrServicecSrc 78 79 public_configs = [ ":bgtaskmgr_service_public_config" ] 80 81 deps = [ 82 "${bgtaskmgr_interfaces_path}/innerkits:background_task_mgr_stub", 83 "${bgtaskmgr_interfaces_path}/innerkits:background_task_subscriber_proxy", 84 "${bgtaskmgr_interfaces_path}/innerkits:bgtaskmgr_innerkits", 85 "${bgtaskmgr_interfaces_path}/innerkits:expired_callback_proxy", 86 ] 87 88 external_deps = [ 89 "ability_base:base", 90 "ability_base:configuration", 91 "ability_base:want", 92 "ability_base:zuri", 93 "ability_runtime:app_manager", 94 "ability_runtime:wantagent_innerkits", 95 "access_token:libaccesstoken_sdk", 96 "access_token:libtokenid_sdk", 97 "bundle_framework:appexecfwk_base", 98 "bundle_framework:appexecfwk_core", 99 "c_utils:utils", 100 "common_event_service:cesfwk_innerkits", 101 "config_policy:configpolicy_util", 102 "eventhandler:libeventhandler", 103 "hilog:libhilog", 104 "hisysevent:libhisysevent", 105 "hitrace:hitrace_meter", 106 "hitrace:libhitracechain", 107 "init:libbegetutil", 108 "ipc:ipc_single", 109 "safwk:system_ability_fwk", 110 "samgr:samgr_proxy", 111 ] 112 113 if (has_os_account_part) { 114 cflags_cc += [ "-DHAS_OS_ACCOUNT_PART" ] 115 external_deps += [ "os_account:os_account_innerkits" ] 116 } 117 118 if (distributed_notification_enable) { 119 cflags_cc += [ "-DDISTRIBUTED_NOTIFICATION_ENABLE" ] 120 external_deps += [ "distributed_notification_service:ans_innerkits" ] 121 sources += [ "continuous_task/src/task_notification_subscriber.cpp" ] 122 } 123 124 if (background_task_mgr_graphics) { 125 cflags_cc += [ "-DSUPPORT_GRAPHICS" ] 126 external_deps += [ 127 "i18n:intl_util", 128 "icu:shared_icuuc", 129 ] 130 } 131 132 if (target_platform == "phone") { 133 defines = [ "FEATURE_PRODUCT_PHONE" ] 134 } else if (target_platform == "watch") { 135 defines = [ "FEATURE_PRODUCT_WATCH" ] 136 } 137 138 subsystem_name = "resourceschedule" 139 part_name = "background_task_mgr" 140} 141 142ohos_static_library("bgtaskmgr_service_static") { 143 cflags_cc = [ "-DBGTASK_MGR_UNIT_TEST" ] 144 sources = BgTaskMgrServicecSrc 145 146 public_configs = [ ":bgtaskmgr_service_public_config" ] 147 148 deps = [ "${bgtaskmgr_interfaces_path}/innerkits:bgtaskmgr_innerkits" ] 149 150 external_deps = [ 151 "ability_base:base", 152 "ability_base:configuration", 153 "ability_base:want", 154 "ability_base:zuri", 155 "ability_runtime:app_manager", 156 "ability_runtime:wantagent_innerkits", 157 "access_token:libaccesstoken_sdk", 158 "access_token:libtokenid_sdk", 159 "bundle_framework:appexecfwk_base", 160 "bundle_framework:appexecfwk_core", 161 "c_utils:utils", 162 "common_event_service:cesfwk_innerkits", 163 "config_policy:configpolicy_util", 164 "eventhandler:libeventhandler", 165 "hilog:libhilog", 166 "hisysevent:libhisysevent", 167 "hitrace:hitrace_meter", 168 "hitrace:libhitracechain", 169 "init:libbegetutil", 170 "ipc:ipc_single", 171 "relational_store:native_rdb", 172 "resource_management:global_resmgr", 173 "safwk:system_ability_fwk", 174 "samgr:samgr_proxy", 175 ] 176 177 if (has_os_account_part) { 178 cflags_cc += [ "-DHAS_OS_ACCOUNT_PART" ] 179 external_deps += [ "os_account:os_account_innerkits" ] 180 } 181 182 if (distributed_notification_enable) { 183 cflags_cc += [ "-DDISTRIBUTED_NOTIFICATION_ENABLE" ] 184 external_deps += [ "distributed_notification_service:ans_innerkits" ] 185 sources += [ "continuous_task/src/task_notification_subscriber.cpp" ] 186 } 187 188 if (background_task_mgr_graphics) { 189 cflags_cc += [ "-DSUPPORT_GRAPHICS" ] 190 external_deps += [ 191 "i18n:intl_util", 192 "icu:shared_icuuc", 193 ] 194 } 195 196 if (target_platform == "phone") { 197 defines = [ "FEATURE_PRODUCT_PHONE" ] 198 } else if (target_platform == "watch") { 199 defines = [ "FEATURE_PRODUCT_WATCH" ] 200 } 201 202 subsystem_name = "resourceschedule" 203 part_name = "background_task_mgr" 204} 205