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