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