1# Copyright (c) 2020 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. 13import("//build/lite/config/component/lite_component.gni") 14import("//build/lite/config/subsystem/aafwk/config.gni") 15import("//foundation/ability/ability_lite/ability_lite.gni") 16import( 17 "//foundation/bundlemanager/bundle_framework_lite/bundle_framework_lite.gni") 18 19lite_library("abilityms") { 20 if (ohos_kernel_type == "liteos_m") { 21 target_type = "static_library" 22 23 sources = [ 24 "src/slite/ability_list.cpp", 25 "src/slite/ability_mgr_service_slite.cpp", 26 "src/slite/ability_record.cpp", 27 "src/slite/ability_record_manager.cpp", 28 "src/slite/ability_record_observer_manager.cpp", 29 "src/slite/ability_thread.cpp", 30 "src/slite/ability_thread_loader.cpp", 31 "src/slite/bms_helper.cpp", 32 "src/slite/js_ability_thread.cpp", 33 "src/slite/native_ability_thread.cpp", 34 "src/slite/slite_ability_loader.cpp", 35 ] 36 37 if (defined(ability_lite_config_ohos_aafwk_ams_task_size) && 38 ability_lite_config_ohos_aafwk_ams_task_size > 0) { 39 defines = [ 40 "AMS_TASK_STACK_SIZE=$ability_lite_config_ohos_aafwk_ams_task_size", 41 ] 42 } 43 44 if (defined(ability_lite_config_ohos_aafwk_ability_list_capacity) && 45 ability_lite_config_ohos_aafwk_ability_list_capacity > 0) { 46 defines += [ "ABILITY_LIST_CAPACITY=$ability_lite_config_ohos_aafwk_ability_list_capacity" ] 47 } 48 49 if (defined(ability_lite_config_ohos_aafwk_aafwk_lite_task_stack_size) && 50 ability_lite_config_ohos_aafwk_aafwk_lite_task_stack_size > 0) { 51 defines += [ 52 "TASK_STACK_SIZE=$ability_lite_config_ohos_aafwk_aafwk_lite_task_stack_size", 53 "NATIVE_TASK_STACK_SIZE=$ability_lite_config_ohos_aafwk_ams_task_size", 54 ] 55 } 56 57 if (ability_lite_enable_ohos_aafwk_multi_tasks_feature == true) { 58 defines += [ "_MINI_MULTI_TASKS_" ] 59 } 60 61 if (defined(bundle_framework_lite_enable_ohos_bundle_manager_service) && 62 bundle_framework_lite_enable_ohos_bundle_manager_service == true) { 63 defines += [ "_MINI_BMS_" ] 64 } 65 66 deps = [ 67 "${ability_lite_samgr_lite_path}/samgr:samgr", 68 "${ace_engine_lite_path}/frameworks:ace_lite", 69 "${hilog_lite_path}/frameworks/featured:hilog_static", 70 ] 71 72 include_dirs = [ 73 "${aafwk_lite_path}/interfaces/inner_api/abilitymgr_lite", 74 "${aafwk_lite_path}/interfaces/inner_api/abilitymgr_lite/slite", 75 "${aafwk_lite_path}/interfaces/kits/ability_lite/slite", 76 "${aafwk_lite_path}/interfaces/kits/want_lite", 77 "${aafwk_lite_path}/frameworks/abilitymgr_lite/include/slite", 78 "${appexecfwk_lite_path}/interfaces/inner_api/bundlemgr_lite", 79 "${appexecfwk_lite_path}/interfaces/kits/bundle_lite", 80 "${appexecfwk_lite_path}/utils/bundle_lite", 81 "${utils_lite_path}/include", 82 "${utils_lite_path}/memory/include", 83 "${dmsfwk_lite_path}/interfaces/innerkits", 84 "${ability_lite_samgr_lite_path}/interfaces/kits/registry", 85 "${ability_lite_samgr_lite_path}/interfaces/kits/samgr", 86 "//third_party/bounds_checking_function/include", 87 "./include/slite", 88 "./include/util", 89 ] 90 } else { 91 target_type = "shared_library" 92 93 sources = [ 94 "src/ability_connect_mission.cpp", 95 "src/ability_inner_feature.cpp", 96 "src/ability_mgr_context.cpp", 97 "src/ability_mgr_feature.cpp", 98 "src/ability_mgr_handler.cpp", 99 "src/ability_mgr_service.cpp", 100 "src/ability_mission_record.cpp", 101 "src/ability_mission_stack.cpp", 102 "src/ability_stack_manager.cpp", 103 "src/ability_worker.cpp", 104 "src/app_manager.cpp", 105 "src/app_record.cpp", 106 "src/client/ability_dump_client.cpp", 107 "src/client/ability_thread_client.cpp", 108 "src/client/app_spawn_client.cpp", 109 "src/client/bundlems_client.cpp", 110 "src/client/wms_client.cpp", 111 "src/page_ability_record.cpp", 112 "src/task/ability_activate_task.cpp", 113 "src/task/ability_attach_task.cpp", 114 "src/task/ability_background_task.cpp", 115 "src/task/ability_connect_done_task.cpp", 116 "src/task/ability_connect_task.cpp", 117 "src/task/ability_disconnect_done_task.cpp", 118 "src/task/ability_disconnect_task.cpp", 119 "src/task/ability_dump_task.cpp", 120 "src/task/ability_inactivate_task.cpp", 121 "src/task/ability_start_task.cpp", 122 "src/task/ability_stop_task.cpp", 123 "src/task/ability_terminate_service_task.cpp", 124 "src/task/ability_terminate_task.cpp", 125 "src/task/app_restart_task.cpp", 126 "src/task/app_terminate_task.cpp", 127 "src/util/abilityms_helper.cpp", 128 "src/util/abilityms_status.cpp", 129 ] 130 131 deps = [ 132 "${ability_lite_samgr_lite_path}/samgr:samgr", 133 "${appexecfwk_lite_path}/frameworks/bundle_lite:bundle", 134 "${communication_path}/ipc/interfaces/innerkits/c/ipc:ipc_single", 135 "${hilog_lite_path}/frameworks/featured:hilog_shared", 136 ] 137 138 defines = [ "OHOS_APPEXECFWK_BMS_BUNDLEMANAGER" ] 139 140 if (defined(ability_lite_config_ohos_aafwk_ams_task_size) && 141 ability_lite_config_ohos_aafwk_ams_task_size > 0) { 142 defines += [ 143 "AMS_TASK_STACK_SIZE=$ability_lite_config_ohos_aafwk_ams_task_size", 144 ] 145 } 146 147 if (ability_lite_enable_ohos_appexecfwk_feature_ability == true) { 148 deps += [ "${graphic_path}/surface_lite" ] 149 defines += [ "ABILITY_WINDOW_SUPPORT" ] 150 } 151 152 include_dirs = [ 153 "${aafwk_lite_path}/interfaces/kits/ability_lite", 154 "${aafwk_lite_path}/interfaces/kits/want_lite", 155 "${aafwk_lite_path}/frameworks/want_lite/include", 156 "${aafwk_lite_path}/interfaces/inner_api/abilitymgr_lite", 157 "${aafwk_lite_path}/frameworks/abilitymgr_lite/include", 158 "${aafwk_lite_path}/services/abilitymgr_lite/include/util", 159 "${appexecfwk_lite_path}/interfaces/kits/bundle_lite", 160 "${appexecfwk_lite_path}/utils/bundle_lite", 161 "${appexecfwk_lite_path}/interfaces/inner_api/bundlemgr_lite", 162 "${appexecfwk_lite_path}/frameworks/bundle_lite/include", 163 "${permission_lite_path}/interfaces/kits", 164 "${permission_lite_path}/services/pms/include", 165 "${appapawn_lite_path}", 166 "${utils_lite_path}/include", 167 "${utils_lite_path}/memory/include", 168 "${dmsfwk_lite_path}/interfaces/innerkits", 169 "${communication_path}/ipc/interfaces/innerkits/c/ipc/include", 170 "${graphic_path}/../window/window_manager_lite/interfaces/innerkits", 171 "${ability_lite_samgr_lite_path}/interfaces/kits/registry", 172 "${ability_lite_samgr_lite_path}/interfaces/kits/samgr", 173 "//third_party/bounds_checking_function/include", 174 "//third_party/cJSON", 175 "include", 176 "include/task", 177 ] 178 } 179 180 cflags = [] 181 if (board_toolchain_type != "iccarm") { 182 cflags += [ 183 "-Wall", 184 "-Wno-format", 185 "-Wno-format-extra-args", 186 ] 187 } 188 cflags_cc = cflags 189 190 ldflags = [ 191 "-lstdc++", 192 "-lpthread", 193 "-ldl", 194 ] 195 196 if (ohos_kernel_type == "liteos_m") { 197 include_dirs += [ "${hilog_lite_path}/interfaces/native/kits/hilog_lite" ] 198 } 199} 200 201generate_notice_file("abilityms_notice_file") { 202 module_name = "abilityms" 203 module_source_dir_list = [ 204 "//third_party/bounds_checking_function", 205 "//third_party/cJSON", 206 ] 207} 208 209lite_component("aafwk_services_lite") { 210 features = [ ":abilityms" ] 211 if (ohos_kernel_type != "liteos_m") { 212 features += [ 213 "tools:aa", 214 "unittest:ability_test", 215 ] 216 } 217} 218