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/config/components/ets_frontend/es2abc_config.gni")
15import("//build/ohos.gni")
16import("//build/templates/abc/ohos_abc.gni")
17import("//commonlibrary/memory_utils/purgeable_mem_config.gni")
18import("//foundation/ability/ability_runtime/ability_runtime.gni")
19
20ohos_abc("delegator_mgmt") {
21  sources = [ "${ability_runtime_native_path}/appkit/ability_delegator/runner_runtime/delegator_mgmt.js" ]
22  output_name = "delegator_mgmt"
23  install_images = [ "system" ]
24  module_install_dir = "etc/abc/ability"
25  subsystem_name = "ability"
26  part_name = "ability_runtime"
27}
28
29config("appkit_exception_config") {
30  cflags_cc = [ "-fexceptions" ]
31}
32
33config("appkit_config") {
34  defines = [ "AMS_LOG_TAG = \"Appkit\"" ]
35  defines += [ "AMS_LOG_DOMAIN = 0xD001305" ]
36  if (target_cpu == "arm64") {
37    defines += [ "_ARM64_" ]
38  }
39  if (target_cpu == "arm64") {
40    defines += [ "APP_USE_ARM64" ]
41  } else if (target_cpu == "arm") {
42    defines += [ "APP_USE_ARM" ]
43  } else if (target_cpu == "x86_64") {
44    defines += [ "APP_USE_X86_64" ]
45  }
46
47  include_dirs = [
48    "${ability_runtime_path}/interfaces/kits/native/appkit/app",
49    "${ability_runtime_path}/interfaces/kits/native/appkit/dfr",
50    "${ability_runtime_path}/interfaces/kits/native/ability/native",
51  ]
52}
53
54config("appkit_public_config") {
55  visibility = [ ":*" ]
56  include_dirs = [
57    "${ability_runtime_path}/interfaces/kits/native/appkit/ability_delegator",
58    "${ability_runtime_path}/interfaces/kits/native/appkit/ability_runtime/app",
59    "${ability_runtime_path}/interfaces/kits/native/appkit/ability_runtime/context",
60    "${ability_runtime_path}/interfaces/kits/native/appkit/app",
61    "${ability_runtime_path}/interfaces/kits/native/appkit/dfr",
62    "${ability_runtime_path}/interfaces/kits/native/appkit/ability_bundle_manager_helper",
63  ]
64
65  if (ability_runtime_graphics) {
66    defines = [
67      "SUPPORT_GRAPHICS",
68      "SUPPORT_SCREEN",
69      "SUPPORT_APP_PREFERRED_LANGUAGE",
70    ]
71  }
72}
73
74# build so
75ohos_shared_library("appkit_native") {
76  include_dirs = [
77    "native",
78    "${ability_runtime_path}/interfaces/inner_api/error_utils/include",
79    "${ability_runtime_path}/interfaces/kits/native/appkit",
80    "${ability_runtime_path}/interfaces/kits/native/appkit/ability_bundle_manager_helper",
81    "${ability_runtime_path}/interfaces/kits/native/appkit/ability_runtime/context",
82    "${ability_runtime_path}/interfaces/kits/native/appkit/app",
83    "${ability_runtime_path}/interfaces/kits/native/appkit/dfr",
84    "${ability_runtime_path}/interfaces/kits/native/appkit/app/task",
85    "${ability_runtime_path}/interfaces/kits/native/appkit/app_startup",
86    "${ability_runtime_innerkits_path}/deps_wrapper/include",
87    "${ability_runtime_services_path}/common/include",
88    "${ability_runtime_path}/interfaces/kits/native/ability/native",
89    "${ability_runtime_path}/interfaces/kits/native/ability/native/recovery",
90    "${ability_runtime_path}/utils/global/time/include",
91    "${ability_runtime_services_path}/abilitymgr/include/utils",
92    "${ability_runtime_services_path}/abilitymgr/include",
93    "${ability_runtime_napi_path}/inner/napi_common",
94    "${ability_runtime_utils_path}/global/constant",
95  ]
96
97  if (ability_runtime_graphics) {
98    include_dirs += [ "${graphic_path}/frameworks/opengl_wrapper/src/EGL" ]
99  }
100
101  configs = [
102    ":appkit_config",
103    ":appkit_exception_config",
104  ]
105
106  public_configs = [ ":appkit_public_config" ]
107
108  sources = [
109    "${ability_runtime_native_path}/appkit/ability_runtime/app/ability_stage.cpp",
110    "${ability_runtime_native_path}/appkit/ability_runtime/app/js_ability_stage.cpp",
111    "${ability_runtime_native_path}/appkit/ability_runtime/app/js_ability_stage_context.cpp",
112    "${ability_runtime_native_path}/appkit/app/ability_record_mgr.cpp",
113    "${ability_runtime_native_path}/appkit/app/app_loader.cpp",
114    "${ability_runtime_native_path}/appkit/app/application_cleaner.cpp",
115    "${ability_runtime_native_path}/appkit/app/application_data_manager.cpp",
116    "${ability_runtime_native_path}/appkit/app/application_env.cpp",
117    "${ability_runtime_native_path}/appkit/app/application_env_impl.cpp",
118    "${ability_runtime_native_path}/appkit/app/application_impl.cpp",
119    "${ability_runtime_native_path}/appkit/app/assert_fault_callback.cpp",
120    "${ability_runtime_native_path}/appkit/app/assert_fault_task_thread.cpp",
121    "${ability_runtime_native_path}/appkit/app/child_main_thread.cpp",
122    "${ability_runtime_native_path}/appkit/app/dump_ffrt_helper.cpp",
123    "${ability_runtime_native_path}/appkit/app/dump_ipc_helper.cpp",
124    "${ability_runtime_native_path}/appkit/app/dump_runtime_helper.cpp",
125    "${ability_runtime_native_path}/appkit/app/extension_plugin_info.cpp",
126    "${ability_runtime_native_path}/appkit/app/idle_time.cpp",
127    "${ability_runtime_native_path}/appkit/app/main_thread.cpp",
128    "${ability_runtime_native_path}/appkit/app/native_lib_util.cpp",
129    "${ability_runtime_native_path}/appkit/app/ohos_application.cpp",
130    "${ability_runtime_native_path}/appkit/app_startup/js_startup_config.cpp",
131    "${ability_runtime_native_path}/appkit/app_startup/js_startup_task.cpp",
132    "${ability_runtime_native_path}/appkit/app_startup/js_startup_task_executor.cpp",
133    "${ability_runtime_native_path}/appkit/app_startup/js_startup_task_result.cpp",
134    "${ability_runtime_native_path}/appkit/app_startup/startup_config.cpp",
135    "${ability_runtime_native_path}/appkit/app_startup/startup_listener.cpp",
136    "${ability_runtime_native_path}/appkit/app_startup/startup_manager.cpp",
137    "${ability_runtime_native_path}/appkit/app_startup/startup_task.cpp",
138    "${ability_runtime_native_path}/appkit/app_startup/startup_task_dispatcher.cpp",
139    "${ability_runtime_native_path}/appkit/app_startup/startup_task_manager.cpp",
140    "${ability_runtime_native_path}/appkit/app_startup/startup_task_result.cpp",
141    "${ability_runtime_native_path}/appkit/app_startup/startup_topologysort.cpp",
142    "${ability_runtime_native_path}/appkit/app_startup/startup_utils.cpp",
143    "${ability_runtime_native_path}/appkit/dfr/appfreeze_inner.cpp",
144    "${ability_runtime_native_path}/appkit/dfr/appfreeze_state.cpp",
145    "${ability_runtime_native_path}/appkit/dfr/watchdog.cpp",
146  ]
147  cflags = []
148  if (target_cpu == "arm") {
149    cflags += [ "-DBINDER_IPC_32BIT" ]
150  }
151  deps = [
152    ":appkit_delegator",
153    "${ability_runtime_abilitymgr_path}/:abilityms",
154    "${ability_runtime_innerkits_path}/ability_manager:ability_manager",
155    "${ability_runtime_innerkits_path}/ability_manager:ability_start_options",
156    "${ability_runtime_innerkits_path}/app_manager:app_manager",
157    "${ability_runtime_innerkits_path}/child_process_manager:child_process_manager",
158    "${ability_runtime_innerkits_path}/deps_wrapper:ability_deps_wrapper",
159    "${ability_runtime_innerkits_path}/runtime:runtime",
160    "${ability_runtime_innerkits_path}/uri_permission:uri_permission_mgr",
161    "${ability_runtime_native_path}/ability/native:ability_thread",
162    "${ability_runtime_native_path}/ability/native:abilitykit_native",
163    "${ability_runtime_native_path}/ability/native:configuration_helper",
164    "${ability_runtime_native_path}/ability/native:uiabilitykit_native",
165    "${ability_runtime_native_path}/appkit:app_context",
166    "${ability_runtime_native_path}/appkit:app_context_utils",
167    "${ability_runtime_native_path}/appkit:appkit_manager_helper",
168    "${ability_runtime_path}/js_environment/frameworks/js_environment:js_environment",
169    "${ability_runtime_path}/utils/global/freeze:freeze_util",
170    "${ability_runtime_services_path}/common:app_util",
171  ]
172
173  external_deps = [
174    "ability_base:base",
175    "ability_base:extractresourcemanager",
176    "ability_base:string_utils",
177    "ability_base:want",
178    "access_token:libaccesstoken_sdk",
179    "bundle_framework:appexecfwk_base",
180    "bundle_framework:appexecfwk_core",
181    "c_utils:utils",
182    "common_event_service:cesfwk_innerkits",
183    "ets_runtime:libark_jsruntime",
184    "eventhandler:libeventhandler",
185    "faultloggerd:libbacktrace_local",
186    "faultloggerd:libdfx_procinfo",
187    "faultloggerd:libfaultloggerd",
188    "ffrt:libffrt",
189    "hicollie:libhicollie",
190    "hilog:libhilog",
191    "hisysevent:libhisysevent",
192    "hitrace:hitrace_meter",
193    "i18n:preferred_language",
194    "init:libbegetutil",
195    "ipc:ipc_core",
196    "json:nlohmann_json_static",
197    "napi:ace_napi",
198    "resource_management:global_resmgr",
199    "safwk:system_ability_fwk",
200    "samgr:samgr_proxy",
201  ]
202  public_external_deps = [ "ability_base:configuration" ]
203
204  if (ability_runtime_graphics) {
205    external_deps += [
206      "ace_engine:ace_forward_compatibility",
207      "graphic_2d:librender_service_client",
208      "i18n:intl_util",
209      "icu:shared_icuuc",
210      "window_manager:libwm",
211    ]
212  }
213
214  defines = []
215  if (is_asan || asan_detector) {
216    defines += [ "SUPPORT_ASAN" ]
217  }
218
219  if (defined(global_parts_info.web_webview)) {
220    external_deps += [
221      "webview:libnweb",
222      "webview:nweb_ohos_adapter",
223    ]
224
225    defines += [ "NWEB" ]
226  }
227
228  if (memory_utils_purgeable_ashmem_enable && defined(global_parts_info) &&
229      defined(global_parts_info.resourceschedule_memmgr_override)) {
230    defines += [ "IMAGE_PURGEABLE_PIXELMAP" ]
231    external_deps += [ "memmgr:libpurgeablemem_plugin" ]
232  }
233
234  if (cj_frontend) {
235    sources += [
236      "${ability_runtime_native_path}/appkit/ability_runtime/app/cj_ability_stage.cpp",
237      "${ability_runtime_native_path}/appkit/ability_runtime/app/cj_ability_stage_context.cpp",
238      "${ability_runtime_native_path}/appkit/ability_runtime/app/cj_ability_stage_object.cpp",
239    ]
240
241    include_dirs += [
242      "${ability_runtime_path}/cj_environment/interfaces/inner_api",
243      "${ability_runtime_path}/frameworks/cj/ffi",
244    ]
245
246    defines += [ "CJ_FRONTEND" ]
247
248    external_deps += [
249      "bundle_framework:appexecfwk_base",
250      "napi:cj_bind_ffi",
251      "napi:cj_bind_native",
252    ]
253  }
254
255  if (ability_runtime_app_no_response_dialog) {
256    defines += [ "APP_NO_RESPONSE_DIALOG" ]
257  }
258
259  cflags_cc = []
260  if (os_dlp_part_enabled) {
261    cflags_cc += [ "-DWITH_DLP" ]
262  }
263
264  innerapi_tags = [ "platformsdk" ]
265  version_script = "libappkit_native.map"
266  subsystem_name = "ability"
267  part_name = "ability_runtime"
268}
269
270# build so
271ohos_shared_library("app_context") {
272  branch_protector_ret = "pac_ret"
273
274  include_dirs = [
275    "${ability_runtime_path}/interfaces/kits/native/appkit/ability_runtime/context",
276    "${ability_runtime_path}/interfaces/kits/native/appkit/app",
277    "${ability_runtime_path}/interfaces/kits/native/appkit/ability_bundle_manager_helper",
278  ]
279
280  configs = [ ":appkit_config" ]
281
282  public_configs = [ ":appkit_public_config" ]
283
284  sources = [
285    "${ability_runtime_native_path}/appkit/ability_runtime/context/ability_lifecycle_callback.cpp",
286    "${ability_runtime_native_path}/appkit/ability_runtime/context/ability_stage_context.cpp",
287    "${ability_runtime_native_path}/appkit/ability_runtime/context/application_context.cpp",
288    "${ability_runtime_native_path}/appkit/ability_runtime/context/application_state_change_callback.cpp",
289    "${ability_runtime_native_path}/appkit/ability_runtime/context/context_impl.cpp",
290    "${ability_runtime_native_path}/appkit/ability_runtime/context/environment_callback.cpp",
291    "${ability_runtime_native_path}/appkit/app/overlay_event_subscriber.cpp",
292    "${ability_runtime_native_path}/appkit/app/sys_mgr_client.cpp",
293  ]
294  cflags = []
295  if (target_cpu == "arm") {
296    cflags += [ "-DBINDER_IPC_32BIT" ]
297  }
298  deps = [
299    "${ability_runtime_innerkits_path}/ability_manager:ability_manager",
300    "${ability_runtime_innerkits_path}/ability_manager:ability_start_options",
301    "${ability_runtime_innerkits_path}/app_manager:app_manager",
302    "${ability_runtime_innerkits_path}/deps_wrapper:ability_deps_wrapper",
303    "${ability_runtime_innerkits_path}/runtime:runtime",
304    "${ability_runtime_native_path}/appkit:appkit_manager_helper",
305  ]
306
307  external_deps = [
308    "ability_base:extractortool",
309    "c_utils:utils",
310    "common_event_service:cesfwk_innerkits",
311    "hilog:libhilog",
312    "hitrace:hitrace_meter",
313    "init:libbegetutil",
314    "ipc:ipc_core",
315    "json:nlohmann_json_static",
316    "napi:ace_napi",
317    "resource_management:global_resmgr",
318    "samgr:samgr_proxy",
319  ]
320  public_external_deps = [
321    "ability_base:configuration",
322    "ability_base:session_info",
323    "ability_base:want",
324    "bundle_framework:appexecfwk_base",
325    "bundle_framework:appexecfwk_core",
326  ]
327
328  if (ability_runtime_graphics) {
329    external_deps += [
330      "i18n:intl_util",
331      "icu:shared_icuuc",
332    ]
333  }
334
335  innerapi_tags = [ "platformsdk" ]
336  subsystem_name = "ability"
337  part_name = "ability_runtime"
338}
339
340# build so
341ohos_shared_library("app_context_utils") {
342  branch_protector_ret = "pac_ret"
343
344  include_dirs = [
345    "${ability_runtime_napi_path}/ability_auto_startup_callback",
346    "${ability_runtime_path}/interfaces/kits/native/appkit/ability_runtime/context",
347    "${ability_runtime_path}/interfaces/kits/native/appkit/ability_runtime/app",
348  ]
349
350  configs = [ ":appkit_config" ]
351
352  public_configs = [ ":appkit_public_config" ]
353
354  sources = [
355    "ability_runtime/context/js_application_context_utils.cpp",
356    "ability_runtime/context/js_context_utils.cpp",
357    "ability_runtime/context/js_resource_manager_utils.cpp",
358  ]
359  cflags = []
360  if (target_cpu == "arm") {
361    cflags += [ "-DBINDER_IPC_32BIT" ]
362  }
363  deps = [
364    "${ability_runtime_innerkits_path}/ability_manager:ability_manager",
365    "${ability_runtime_innerkits_path}/ability_manager:ability_start_options",
366    "${ability_runtime_innerkits_path}/app_manager:app_manager",
367    "${ability_runtime_innerkits_path}/error_utils:ability_runtime_error_util",
368    "${ability_runtime_innerkits_path}/runtime:runtime",
369    "${ability_runtime_napi_path}/inner/napi_common:napi_common",
370    "${ability_runtime_native_path}/ability/native:ability_business_error",
371    "${ability_runtime_native_path}/ability/native:auto_startup_callback",
372    "${ability_runtime_native_path}/appkit:app_context",
373    "${ability_runtime_native_path}/appkit:application_context_manager",
374  ]
375
376  external_deps = [
377    "ability_base:session_info",
378    "ability_base:want",
379    "access_token:libtokenid_sdk",
380    "bundle_framework:appexecfwk_base",
381    "bundle_framework:appexecfwk_core",
382    "c_utils:utils",
383    "hilog:libhilog",
384    "hitrace:hitrace_meter",
385    "ipc:ipc_core",
386    "json:nlohmann_json_static",
387    "napi:ace_napi",
388    "resource_management:global_resmgr",
389    "resource_management:resmgr_napi_core",
390  ]
391  public_external_deps = [ "ability_base:configuration" ]
392  if (ability_runtime_graphics) {
393    external_deps += [
394      "i18n:intl_util",
395      "icu:shared_icuuc",
396    ]
397  }
398
399  innerapi_tags = [ "platformsdk" ]
400  subsystem_name = "ability"
401  part_name = "ability_runtime"
402}
403
404# build so
405ohos_shared_library("appkit_delegator") {
406  branch_protector_ret = "pac_ret"
407
408  include_dirs = [
409    "native",
410    "${ability_runtime_path}/interfaces/kits/native/appkit/ability_runtime/app",
411    "${ability_runtime_path}/interfaces/kits/native/appkit/ability_runtime/context",
412    "${ability_runtime_path}/interfaces/kits/native/appkit/ability_runtime/ability_delegator/include",
413    "${ability_runtime_services_path}/common/include",
414    "${ability_runtime_path}/interfaces/kits/native/ability/native",
415  ]
416
417  configs = [ ":appkit_config" ]
418
419  public_configs = [ ":appkit_public_config" ]
420
421  sources = [
422    "${ability_runtime_native_path}/appkit/ability_delegator/ability_delegator.cpp",
423    "${ability_runtime_native_path}/appkit/ability_delegator/ability_delegator_args.cpp",
424    "${ability_runtime_native_path}/appkit/ability_delegator/ability_delegator_registry.cpp",
425    "${ability_runtime_native_path}/appkit/ability_delegator/delegator_thread.cpp",
426    "${ability_runtime_native_path}/appkit/ability_delegator/iability_monitor.cpp",
427    "${ability_runtime_native_path}/appkit/ability_delegator/iability_stage_monitor.cpp",
428    "${ability_runtime_native_path}/appkit/ability_delegator/runner_runtime/js_test_runner.cpp",
429    "${ability_runtime_native_path}/appkit/ability_delegator/shell_cmd_result.cpp",
430    "${ability_runtime_native_path}/appkit/ability_delegator/test_runner.cpp",
431    "${ability_runtime_path}/tools/aa/src/shell_command_result.cpp",
432    "${ability_runtime_path}/tools/aa/src/test_observer_proxy.cpp",
433  ]
434
435  cflags = []
436  if (target_cpu == "arm") {
437    cflags += [ "-DBINDER_IPC_32BIT" ]
438  }
439
440  deps = [
441    "${ability_runtime_innerkits_path}/ability_manager:ability_manager",
442    "${ability_runtime_innerkits_path}/ability_manager:ability_start_options",
443    "${ability_runtime_innerkits_path}/runtime:runtime",
444    "${ability_runtime_native_path}/appkit:app_context",
445    "${ability_runtime_native_path}/appkit:delegator_mgmt",
446  ]
447
448  external_deps = [
449    "ability_base:session_info",
450    "ability_base:want",
451    "bundle_framework:appexecfwk_base",
452    "c_utils:utils",
453    "common_event_service:cesfwk_innerkits",
454    "eventhandler:libeventhandler",
455    "hilog:libhilog",
456    "ipc:ipc_core",
457    "json:nlohmann_json_static",
458    "napi:ace_napi",
459  ]
460
461  public_external_deps = [ "ability_base:configuration" ]
462
463  if (cj_frontend) {
464    sources += [
465      "${ability_runtime_native_path}/appkit/ability_delegator/runner_runtime/cj_test_runner.cpp",
466      "${ability_runtime_native_path}/appkit/ability_delegator/runner_runtime/cj_test_runner_object.cpp",
467    ]
468
469    include_dirs +=
470        [ "${ability_runtime_path}/cj_environment/interfaces/inner_api" ]
471
472    defines = [ "CJ_FRONTEND" ]
473  }
474  if (ability_runtime_graphics) {
475    external_deps += [ "icu:shared_icuuc" ]
476  }
477
478  innerapi_tags = [ "platformsdk" ]
479  subsystem_name = "ability"
480  part_name = "ability_runtime"
481}
482
483config("application_context_manager_config") {
484  include_dirs = [
485    "${ability_runtime_path}/interfaces/kits/native/appkit/ability_runtime/context",
486    "${ability_runtime_services_path}/common/include",
487  ]
488}
489
490ohos_shared_library("appkit_manager_helper") {
491  branch_protector_ret = "pac_ret"
492
493  include_dirs = [
494    "native",
495    "${ability_runtime_path}/interfaces/kits/native/appkit/ability_runtime/app",
496    "${ability_runtime_path}/interfaces/kits/native/appkit/ability_runtime/context",
497    "${ability_runtime_path}/interfaces/kits/native/appkit/ability_bundle_manager_helper",
498    "${ability_runtime_services_path}/common/include",
499    "${ability_runtime_path}/interfaces/kits/native/ability/native",
500    "${ability_runtime_utils_path}/global/constant",
501  ]
502
503  configs = [ ":appkit_config" ]
504
505  sources = [ "${ability_runtime_native_path}/appkit/ability_bundle_manager_helper/bundle_mgr_helper.cpp" ]
506
507  cflags = []
508  if (target_cpu == "arm") {
509    cflags += [ "-DBINDER_IPC_32BIT" ]
510  }
511
512  deps = []
513
514  external_deps = [
515    "ability_base:want",
516    "bundle_framework:appexecfwk_base",
517    "bundle_framework:appexecfwk_core",
518    "bundle_framework:libappexecfwk_common",
519    "c_utils:utils",
520    "hilog:libhilog",
521    "hitrace:hitrace_meter",
522    "ipc:ipc_core",
523    "json:nlohmann_json_static",
524    "samgr:samgr_proxy",
525  ]
526
527  if (ability_runtime_graphics) {
528    external_deps += [ "icu:shared_icuuc" ]
529  }
530
531  innerapi_tags = [ "platformsdk" ]
532  subsystem_name = "ability"
533  part_name = "ability_runtime"
534}
535
536ohos_shared_library("application_context_manager") {
537  branch_protector_ret = "pac_ret"
538
539  sources = [ "${ability_runtime_native_path}/appkit/ability_runtime/context/application_context_manager.cpp" ]
540
541  cflags = []
542  if (target_cpu == "arm") {
543    cflags += [ "-DBINDER_IPC_32BIT" ]
544  }
545
546  external_deps = [
547    "ets_runtime:libark_jsruntime",
548    "hilog:libhilog",
549    "napi:ace_napi",
550  ]
551
552  public_configs = [ ":application_context_manager_config" ]
553
554  subsystem_name = "ability"
555  part_name = "ability_runtime"
556}
557