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