1# Copyright (c) 2021-2024 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/ohos.gni")
15import("//foundation/ability/ability_runtime/ability_runtime.gni")
16import(
17    "//foundation/ability/ability_runtime/services/abilitymgr/abilitymgr.gni")
18
19group("abilityms_target") {
20  deps = [
21    ":abilityms",
22    ":ams_service_config",
23    ":mission_list",
24  ]
25}
26
27config("abilityms_exception_config") {
28  cflags_cc = [ "-fexceptions" ]
29}
30
31config("abilityms_config") {
32  include_dirs = [
33    "include/",
34    "include/data_ability",
35    "include/dialog_session/",
36    "include/mission/",
37    "include/rdb/",
38    "include/resident_process/",
39    "include/screen_lock/",
40    "include/utils/",
41    "${ability_runtime_innerkits_path}/ability_manager/include",
42    "${ability_runtime_services_path}/appdfr/include",
43    "${ability_runtime_innerkits_path}/app_manager/include",
44    "${ability_runtime_innerkits_path}/connectionobs_manager/include",
45    "${ability_runtime_innerkits_path}/deps_wrapper/include",
46    "${ability_runtime_services_path}/common/include",
47    "//prebuilts/jdk/jdk8/linux-x86/include",
48    "//prebuilts/jdk/jdk8/linux-x86/include/linux",
49    "${ability_runtime_path}/interfaces/kits/native/ability/native",
50    "${ability_runtime_innerkits_path}/dataobs_manager/include",
51    "${ability_runtime_path}/tools/aa/include",
52    "${ability_runtime_innerkits_path}/wantagent/include",
53    "${ability_runtime_innerkits_path}/session_handler/include",
54    "${ability_runtime_path}/interfaces/kits/native/appkit/ability_runtime",
55    "${ability_runtime_path}/interfaces/kits/native/appkit/ability_bundle_manager_helper",
56    "${ability_runtime_utils_path}/global/constant",
57    "${ability_runtime_utils_path}/server/constant",
58  ]
59
60  defines = []
61
62  if (ability_command_for_test) {
63    defines += [ "ABILITY_COMMAND_FOR_TEST" ]
64  }
65
66  if (ability_fault_and_exit_test) {
67    defines += [ "ABILITY_FAULT_AND_EXIT_TEST" ]
68  }
69
70  if (ability_runtime_graphics) {
71    defines += [
72      "SUPPORT_GRAPHICS",
73      "SUPPORT_SCREEN",
74    ]
75  }
76
77  if (background_task_mgr_continuous_task_enable) {
78    defines += [ "BGTASKMGR_CONTINUOUS_TASK_ENABLE" ]
79  }
80
81  if (resource_schedule_service_enable) {
82    defines += [ "RESOURCE_SCHEDULE_SERVICE_ENABLE" ]
83  }
84
85  if (is_asan || asan_detector) {
86    defines += [ "SUPPORT_ASAN" ]
87  }
88
89  cflags = []
90  if (target_cpu == "arm") {
91    cflags += [ "-DBINDER_IPC_32BIT" ]
92  }
93  cflags += [
94    "-DKEY_AUTO_FILL_ABILITY=\"${ability_runtime_auto_fill_ability}\"",
95    "-DKEY_SMART_AUTO_FILL_ABILITY=\"${ability_runtime_smart_auto_fill_ability}\"",
96  ]
97}
98
99ohos_shared_library("abilityms") {
100  sanitize = {
101    cfi = true
102    cfi_cross_dso = true
103    debug = false
104  }
105  branch_protector_ret = "pac_ret"
106  shlib_type = "sa"
107  sources = abilityms_files
108  cflags_cc = []
109  configs = [
110    ":abilityms_config",
111    ":abilityms_exception_config",
112  ]
113  include_dirs = [
114    "${ability_runtime_services_path}/appdfr/include",
115    "${ability_runtime_path}/interfaces/kits/native/ability/native/ui_service_extension_ability/connection",
116    "${ability_runtime_services_path}/abilitymgr/include/mission",
117  ]
118  deps = [
119    ":wantagent_manager",
120    "${ability_runtime_innerkits_path}/ability_manager:ability_manager",
121    "${ability_runtime_innerkits_path}/ability_manager:ability_start_options",
122    "${ability_runtime_innerkits_path}/ability_manager:ability_start_setting",
123    "${ability_runtime_innerkits_path}/ability_manager:mission_info",
124    "${ability_runtime_innerkits_path}/ability_manager:process_options",
125    "${ability_runtime_innerkits_path}/ability_manager:start_window_option",
126    "${ability_runtime_innerkits_path}/app_manager:app_manager",
127    "${ability_runtime_innerkits_path}/connectionobs_manager:connection_obs_manager",
128    "${ability_runtime_innerkits_path}/deps_wrapper:ability_deps_wrapper",
129    "${ability_runtime_innerkits_path}/session_handler:session_handler",
130    "${ability_runtime_innerkits_path}/uri_permission:uri_permission_mgr",
131    "${ability_runtime_native_path}/ability/native:abilitykit_native",
132    "${ability_runtime_native_path}/ability/native:auto_startup_callback",
133    "${ability_runtime_native_path}/appkit:appkit_manager_helper",
134    "${ability_runtime_path}/utils/global/freeze:freeze_util",
135    "${ability_runtime_path}/utils/server/startup:startup_util",
136    "${ability_runtime_services_path}/common:app_util",
137    "${ability_runtime_services_path}/common:event_report",
138    "${ability_runtime_services_path}/common:perm_verification",
139    "${ability_runtime_services_path}/common:res_sched_util",
140    "${ability_runtime_services_path}/common:task_handler_wrap",
141  ]
142
143  external_deps = [
144    "ability_base:base",
145    "ability_base:configuration",
146    "ability_base:extractortool",
147    "ability_base:session_info",
148    "ability_base:view_data",
149    "ability_base:want",
150    "ability_base:zuri",
151    "access_token:libaccesstoken_sdk",
152    "access_token:libtokenid_sdk",
153    "bundle_framework:appexecfwk_base",
154    "bundle_framework:appexecfwk_core",
155    "bundle_framework:libappexecfwk_common",
156    "c_utils:utils",
157    "common_event_service:cesfwk_core",
158    "common_event_service:cesfwk_innerkits",
159    "config_policy:configpolicy_util",
160    "dsoftbus:softbus_client",
161    "ffrt:libffrt",
162    "graphic_2d:color_manager",
163    "hicollie:libhicollie",
164    "hilog:libhilog",
165    "hisysevent:libhisysevent",
166    "hitrace:hitrace_meter",
167    "icu:shared_icuuc",
168    "init:libbeget_proxy",
169    "init:libbegetutil",
170    "ipc:ipc_core",
171    "json:nlohmann_json_static",
172    "kv_store:distributeddata_inner",
173    "os_account:os_account_innerkits",
174    "qos_manager:concurrent_task_client",
175    "relational_store:native_appdatafwk",
176    "relational_store:native_dataability",
177    "relational_store:native_rdb",
178    "safwk:system_ability_fwk",
179    "samgr:samgr_proxy",
180    "window_manager:libmodal_system_ui_extension_client",
181    "window_manager:libwsutils",
182    "window_manager:scene_session",
183    "window_manager:session_manager_lite",
184    "window_manager:sms",
185  ]
186  public_external_deps = [ "background_task_mgr:bgtaskmgr_innerkits" ]
187
188  if (background_task_mgr_continuous_task_enable) {
189    external_deps += [ "background_task_mgr:bgtaskmgr_innerkits" ]
190  }
191
192  if (resource_schedule_service_enable) {
193    external_deps += [ "resource_schedule_service:ressched_client" ]
194  }
195
196  if (os_dlp_part_enabled) {
197    cflags_cc += [ "-DWITH_DLP" ]
198    external_deps += [
199      "dlp_permission_service:libdlp_permission_sdk",
200      "dlp_permission_service:libdlpparse",
201    ]
202  }
203
204  defines = []
205
206  if (ability_runtime_graphics) {
207    defines += [ "SUPPORT_GRAPHICS" ]
208    external_deps += [
209      "ability_base:session_info",
210      "i18n:intl_util",
211      "icu:shared_icuuc",
212      "image_framework:image_native",
213      "input:libmmi-client",
214      "resource_management:global_resmgr",
215      "screenlock_mgr:screenlock_client",
216      "window_manager:libdm",
217      "window_manager:libmodal_system_ui_extension_client",
218      "window_manager:libwm",
219      "window_manager:libwsutils",
220      "window_manager:scene_session",
221      "window_manager:sms",
222    ]
223  }
224
225  if (include_app_domain_verify) {
226    external_deps += [
227      "app_domain_verify:app_domain_verify_common",
228      "app_domain_verify:app_domain_verify_mgr_client",
229    ]
230    defines += [ "APP_DOMAIN_VERIFY_ENABLED" ]
231  }
232
233  if (ability_runtime_power) {
234    defines += [ "SUPPORT_POWER" ]
235    external_deps += [ "power_manager:powermgr_client" ]
236  }
237
238  if (ability_runtime_graphics &&
239      ability_runtime_start_window_options_with_pixelmap) {
240    defines += [ "START_WINDOW_OPTIONS_WITH_PIXELMAP" ]
241    external_deps += [ "image_framework:image_native" ]
242  }
243
244  version_script = "libabilityms.map"
245  subsystem_name = "ability"
246  innerapi_tags = [ "platformsdk_indirect" ]
247  part_name = "ability_runtime"
248}
249
250ohos_shared_library("wantagent_manager") {
251  sanitize = {
252    cfi = true
253    cfi_cross_dso = true
254    debug = false
255  }
256  branch_protector_ret = "pac_ret"
257  include_dirs = [
258    "${ability_runtime_services_path}/abilitymgr/data_ability/include",
259    "${ability_runtime_services_path}/abilitymgr/include/utils",
260    "${ability_runtime_services_path}/abilitymgr/include",
261    "${ability_runtime_innerkits_path}/ability_manager/include",
262    "${ability_runtime_services_path}/common/include",
263  ]
264
265  sources = [
266    "${ability_runtime_services_path}/abilitymgr/src/sender_info.cpp",
267    "${ability_runtime_services_path}/abilitymgr/src/want_receiver_proxy.cpp",
268    "${ability_runtime_services_path}/abilitymgr/src/want_receiver_stub.cpp",
269    "${ability_runtime_services_path}/abilitymgr/src/want_sender_info.cpp",
270    "${ability_runtime_services_path}/abilitymgr/src/want_sender_proxy.cpp",
271    "${ability_runtime_services_path}/abilitymgr/src/want_sender_stub.cpp",
272    "${ability_runtime_services_path}/abilitymgr/src/wants_info.cpp",
273  ]
274  deps = [
275    "${ability_runtime_innerkits_path}/ability_manager:ability_start_options",
276    "${ability_runtime_innerkits_path}/error_utils:ability_runtime_error_util",
277  ]
278
279  external_deps = [
280    "ability_base:want",
281    "c_utils:utils",
282    "hilog:libhilog",
283    "hitrace:hitrace_meter",
284    "ipc:ipc_core",
285    "samgr:samgr_proxy",
286  ]
287
288  public_external_deps = [
289    "bundle_framework:appexecfwk_base",
290    "bundle_framework:appexecfwk_core",
291  ]
292
293  innerapi_tags = [
294    "platformsdk",
295    "sasdk",
296  ]
297  subsystem_name = "ability"
298  part_name = "ability_runtime"
299}
300
301ohos_prebuilt_etc("ams_service_config.json") {
302  source = "resource/ams_service_config.json"
303  subsystem_name = "ability"
304  part_name = "ability_runtime"
305}
306
307ohos_prebuilt_etc("uiextension_picker_config.json") {
308  source = "resource/uiextension_picker_config.json"
309  subsystem_name = "ability"
310  part_name = "ability_runtime"
311}
312
313ohos_prebuilt_etc("deeplink_reserve_config.json") {
314  source = "resource/deeplink_reserve_config.json"
315  subsystem_name = "ability"
316  part_name = "ability_runtime"
317}
318
319ohos_prebuilt_etc("ams_extension_config.json") {
320  source = "resource/ams_extension_config.json"
321  subsystem_name = "ability"
322  part_name = "ability_runtime"
323}
324
325ohos_prebuilt_etc("start_ability_without_caller_token.json") {
326  source = "resource/start_ability_without_caller_token.json"
327  subsystem_name = "ability"
328  part_name = "ability_runtime"
329}
330
331ohos_shared_library("mission_list") {
332  sanitize = {
333    integer_overflow = true
334    ubsan = true
335    boundary_sanitize = true
336    cfi = true
337    cfi_cross_dso = true
338    cfi_vcall_icall_only = true
339    debug = false
340  }
341  branch_protector_ret = "pac_ret"
342
343  include_dirs = [
344    "${ability_runtime_innerkits_path}/ability_manager/include",
345    "${ability_runtime_innerkits_path}/ability_manager/include/status_bar_delegate",
346    "${ability_runtime_innerkits_path}/connectionobs_manager/include",
347    "${ability_runtime_innerkits_path}/deps_wrapper/include",
348    "${ability_runtime_innerkits_path}/session_handler/include",
349    "${ability_runtime_path}/interfaces/kits/native/ability/native",
350    "${ability_runtime_path}/interfaces/kits/native/appkit/ability_bundle_manager_helper",
351    "${ability_runtime_services_path}/abilitymgr/data_ability/include",
352    "${ability_runtime_services_path}/abilitymgr/include/utils",
353    "${ability_runtime_services_path}/abilitymgr/include",
354    "${ability_runtime_services_path}/abilitymgr/include/mission",
355    "${ability_runtime_services_path}/common/include",
356    "${ability_runtime_services_path}/appdfr/include",
357    "${ability_runtime_utils_path}/global/constant",
358    "${ability_runtime_utils_path}/server/constant",
359  ]
360
361  defines = []
362
363  if (ability_command_for_test) {
364    defines += [ "ABILITY_COMMAND_FOR_TEST" ]
365  }
366
367  if (ability_runtime_graphics) {
368    defines += [
369      "SUPPORT_GRAPHICS",
370      "SUPPORT_SCREEN",
371    ]
372  }
373
374  cflags = []
375  if (target_cpu == "arm") {
376    cflags += [ "-DBINDER_IPC_32BIT" ]
377  }
378
379  sources = [
380    "src/mission/mission.cpp",
381    "src/mission/mission_data_storage.cpp",
382    "src/mission/mission_info_mgr.cpp",
383    "src/mission/mission_list.cpp",
384    "src/mission/mission_list_manager.cpp",
385    "src/task_data_persistence_mgr.cpp",
386  ]
387
388  deps = [
389    ":abilityms",
390    "${ability_runtime_innerkits_path}/ability_manager:ability_manager",
391    "${ability_runtime_innerkits_path}/ability_manager:ability_start_options",
392    "${ability_runtime_innerkits_path}/ability_manager:ability_start_setting",
393    "${ability_runtime_innerkits_path}/ability_manager:mission_info",
394    "${ability_runtime_innerkits_path}/ability_manager:process_options",
395    "${ability_runtime_innerkits_path}/app_manager:app_manager",
396    "${ability_runtime_innerkits_path}/uri_permission:uri_permission_mgr",
397    "${ability_runtime_native_path}/ability/native:auto_startup_callback",
398    "${ability_runtime_native_path}/appkit:appkit_manager_helper",
399    "${ability_runtime_path}/utils/global/freeze:freeze_util",
400    "${ability_runtime_path}/utils/server/startup:startup_util",
401    "${ability_runtime_services_path}/common:app_util",
402    "${ability_runtime_services_path}/common:event_report",
403    "${ability_runtime_services_path}/common:perm_verification",
404    "${ability_runtime_services_path}/common:res_sched_util",
405    "${ability_runtime_services_path}/common:task_handler_wrap",
406  ]
407
408  external_deps = [
409    "ability_base:base",
410    "ability_base:configuration",
411    "ability_base:session_info",
412    "ability_base:view_data",
413    "ability_base:want",
414    "ability_base:zuri",
415    "access_token:libaccesstoken_sdk",
416    "access_token:libtokenid_sdk",
417    "background_task_mgr:bgtaskmgr_innerkits",
418    "bundle_framework:appexecfwk_base",
419    "bundle_framework:appexecfwk_core",
420    "bundle_framework:libappexecfwk_common",
421    "c_utils:utils",
422    "common_event_service:cesfwk_innerkits",
423    "config_policy:configpolicy_util",
424    "dsoftbus:softbus_client",
425    "ffrt:libffrt",
426    "graphic_2d:color_manager",
427    "hicollie:libhicollie",
428    "hilog:libhilog",
429    "hisysevent:libhisysevent",
430    "hitrace:hitrace_meter",
431    "icu:shared_icuuc",
432    "init:libbeget_proxy",
433    "init:libbegetutil",
434    "ipc:ipc_core",
435    "json:nlohmann_json_static",
436    "kv_store:distributeddata_inner",
437    "os_account:os_account_innerkits",
438    "relational_store:native_appdatafwk",
439    "relational_store:native_dataability",
440    "relational_store:native_rdb",
441    "safwk:system_ability_fwk",
442    "samgr:samgr_proxy",
443  ]
444
445  if (background_task_mgr_continuous_task_enable) {
446    external_deps += [ "background_task_mgr:bgtaskmgr_innerkits" ]
447  }
448
449  if (os_dlp_part_enabled) {
450    defines += [ "WITH_DLP" ]
451    external_deps += [ "dlp_permission_service:libdlp_permission_sdk" ]
452  }
453
454  if (ability_runtime_graphics) {
455    external_deps += [
456      "ability_base:session_info",
457      "i18n:intl_util",
458      "image_framework:image_native",
459      "resource_management:global_resmgr",
460      "window_manager:libdm",
461      "window_manager:libwm",
462    ]
463  }
464
465  cflags_cc = []
466  if (os_dlp_part_enabled) {
467    cflags_cc += [ "-DWITH_DLP" ]
468  }
469
470  subsystem_name = "ability"
471  innerapi_tags = [ "platformsdk_indirect" ]
472  part_name = "ability_runtime"
473}
474
475group("ams_service_config") {
476  deps = [
477    ":ams_service_config.json",
478    ":deeplink_reserve_config.json",
479    ":start_ability_without_caller_token.json",
480    ":uiextension_picker_config.json",
481  ]
482}
483