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