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