• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 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("//base/startup/appspawn/appspawn.gni")
15import("//build/test.gni")
16
17ohos_unittest("AppSpawn_ut") {
18  module_out_path = "appspawn/appspawn"
19  if (appspawn_unittest_coverage) {
20    cflags = [ "--coverage" ]
21    ldflags = [ "--coverage" ]
22    cflags_cc = [ "--coverage" ]
23  }
24  deps = []
25  defines = [
26    "APPSPAWN_BASE_DIR=\"/data/appspawn_ut\"",
27    "APPSPAWN_LABEL=\"APPSPAWN_UT\"",
28    "APPSPAWN_TEST",
29    "APPSPAWN_DEBUG",
30    "DEBUG_BEGETCTL_BOOT",
31    "USER_TIMER_TO_CHECK",
32    "OHOS_DEBUG",
33    "GRAPHIC_PERMISSION_CHECK",
34    "capset=CapsetStub",
35    "unshare=UnshareStub",
36    "mount=MountStub",
37    "symlink=SymlinkStub",
38    "chdir=ChdirStub",
39    "chroot=ChrootStub",
40    "syscall=SyscallStub",
41    "umount2=Umount2Stub",
42    "access=AccessStub",
43    "dlopen=DlopenStub",
44    "dlsym=DlsymStub",
45    "dlclose=DlcloseStub",
46    "execv=ExecvStub",
47    "getprocpid=GetprocpidStub",
48    "setgroups=SetgroupsStub",
49    "setresgid=SetresgidStub",
50    "setresuid=SetresuidStub",
51    "setuid=SetuidStub",
52    "setgid=SetgidStub",
53    "execvp=ExecvpStub",
54    "ioctl=IoctlStub",
55    "execve=ExecveStub",
56    "setcon=SetconStub",
57  ]
58
59  include_dirs = [
60    "${appspawn_path}",
61    "${appspawn_path}/common",
62    "${appspawn_path}/standard",
63    "${appspawn_path}/modules/modulemgr",
64    "${appspawn_path}/modules/ace_adapter",
65    "${appspawn_path}/modules/common",
66    "${appspawn_path}/modules/sandbox",
67    "${appspawn_path}/modules/sysevent",
68    "${appspawn_innerkits_path}/client",
69    "${appspawn_innerkits_path}/include",
70    "${appspawn_innerkits_path}/permission",
71    "${appspawn_path}/modules/module_engine/include",
72    "${appspawn_path}/test/mock",
73    "${appspawn_path}/test/unittest",
74    "${appspawn_path}/util/include",
75  ]
76  sources = [
77    "${appspawn_path}/common/appspawn_server.c",
78    "${appspawn_path}/common/appspawn_trace.cpp",
79    "${appspawn_path}/modules/modulemgr/appspawn_modulemgr.c",
80    "${appspawn_path}/standard/appspawn_appmgr.c",
81    "${appspawn_path}/standard/appspawn_kickdog.c",
82    "${appspawn_path}/standard/appspawn_msgmgr.c",
83    "${appspawn_path}/standard/appspawn_service.c",
84    "${appspawn_path}/standard/nwebspawn_launcher.c",
85    "${appspawn_path}/util/src/appspawn_utils.c",
86  ]
87
88  # client
89  sources += [
90    "${appspawn_innerkits_path}/client/appspawn_client.c",
91    "${appspawn_innerkits_path}/client/appspawn_msg.c",
92    "${appspawn_innerkits_path}/permission/appspawn_mount_permission.c",
93  ]
94
95  # modules sources
96  sources += [
97    "${appspawn_path}/modules/ace_adapter/ace_adapter.cpp",
98    "${appspawn_path}/modules/ace_adapter/command_lexer.cpp",
99    "${appspawn_path}/modules/common/appspawn_adapter.cpp",
100    "${appspawn_path}/modules/common/appspawn_begetctl.c",
101    "${appspawn_path}/modules/common/appspawn_cgroup.c",
102    "${appspawn_path}/modules/common/appspawn_common.c",
103    "${appspawn_path}/modules/common/appspawn_dfx_dump.cpp",
104    "${appspawn_path}/modules/common/appspawn_namespace.c",
105    "${appspawn_path}/modules/common/appspawn_silk.c",
106    "${appspawn_path}/modules/nweb_adapter/nwebspawn_adapter.cpp",
107    "${appspawn_path}/modules/sandbox/appspawn_mount_template.c",
108    "${appspawn_path}/modules/sandbox/appspawn_permission.c",
109    "${appspawn_path}/modules/sandbox/appspawn_sandbox.c",
110    "${appspawn_path}/modules/sandbox/sandbox_adapter.cpp",
111    "${appspawn_path}/modules/sandbox/sandbox_cfgvar.c",
112    "${appspawn_path}/modules/sandbox/sandbox_expand.c",
113    "${appspawn_path}/modules/sandbox/sandbox_load.c",
114    "${appspawn_path}/modules/sandbox/sandbox_manager.c",
115  ]
116
117  if (appspawn_use_encaps == true) {
118    sources += [ "${appspawn_path}/modules/common/appspawn_encaps.c" ]
119  }
120
121  # add stub
122  include_dirs += [ "${appspawn_path}/test/mock" ]
123  sources += [
124    "${appspawn_path}/test/mock/app_spawn_stub.cpp",
125    "${appspawn_path}/test/mock/app_system_stub.c",
126  ]
127
128  # add test
129  include_dirs += [ "${appspawn_path}/test/unittest" ]
130  sources += [
131    "${appspawn_path}/test/unittest/app_spawn_standard_test/app_spawn_appmgr_test.cpp",
132    "${appspawn_path}/test/unittest/app_spawn_standard_test/app_spawn_beget_test.cpp",
133    "${appspawn_path}/test/unittest/app_spawn_standard_test/app_spawn_cgroup_test.cpp",
134    "${appspawn_path}/test/unittest/app_spawn_standard_test/app_spawn_child_test.cpp",
135    "${appspawn_path}/test/unittest/app_spawn_standard_test/app_spawn_command_lexer_test.cpp",
136    "${appspawn_path}/test/unittest/app_spawn_standard_test/app_spawn_kickdog_test.cpp",
137    "${appspawn_path}/test/unittest/app_spawn_standard_test/app_spawn_module_interface_test.cpp",
138    "${appspawn_path}/test/unittest/app_spawn_standard_test/app_spawn_sandboxmgr_test.cpp",
139    "${appspawn_path}/test/unittest/app_spawn_standard_test/app_spawn_service_test.cpp",
140    "${appspawn_path}/test/unittest/app_spawn_standard_test/nweb_spawn_service_test.cpp",
141    "${appspawn_path}/test/unittest/app_spawn_test_helper.cpp",
142  ]
143
144  if (defined(appspawn_sandbox_new) && appspawn_sandbox_new) {
145    sources += [
146      "${appspawn_path}/test/unittest/app_spawn_standard_test/app_spawn_sandbox_new_mount_test.cpp",
147      "${appspawn_path}/test/unittest/app_spawn_standard_test/app_spawn_sandbox_new_test.cpp",
148    ]
149    defines += [ "APPSPAWN_SANDBOX_NEW" ]
150  } else {
151    sources += [
152      "${appspawn_path}/modules/sandbox/sandbox_shared_mount.cpp",
153      "${appspawn_path}/modules/sandbox/sandbox_utils.cpp",
154      "${appspawn_path}/test/unittest/app_spawn_standard_test/app_spawn_sandbox_test.cpp",
155    ]
156  }
157
158  configs = [ "${appspawn_path}:appspawn_config" ]
159  external_deps = [
160    "ability_base:want",
161    "ability_runtime:app_manager",
162    "ability_runtime:appkit_native",
163    "ability_runtime:runtime",
164    "access_token:libtokenid_sdk",
165    "access_token:libtokensetproc_shared",
166    "ace_engine:ace_forward_compatibility",
167    "bundle_framework:appexecfwk_base",
168    "bundle_framework:appexecfwk_core",
169    "cJSON:cjson",
170    "c_utils:utils",
171    "config_policy:configpolicy_util",
172    "eventhandler:libeventhandler",
173    "ffrt:libffrt",
174    "hilog:libhilog",
175    "hitrace:hitrace_meter",
176    "init:libbegetutil",
177    "init:seccomp",
178    "ipc:ipc_core",
179    "napi:ace_napi",
180    "os_account:os_account_innerkits",
181    "resource_management:global_resmgr",
182  ]
183  if (enable_appspawn_dump_catcher) {
184    external_deps += [ "faultloggerd:libdfx_dumpcatcher" ]
185  }
186  if (asan_detector || is_asan) {
187    defines += [ "ASAN_DETECTOR" ]
188    sources += [ "${appspawn_path}/modules/asan/asan_detector.c" ]
189  }
190
191  if (build_selinux) {
192    defines += [ "WITH_SELINUX" ]
193    external_deps += [
194      "selinux:libselinux",
195      "selinux_adapter:libhap_restorecon",
196    ]
197  }
198
199  if (appspawn_report_event) {
200    defines += [ "REPORT_EVENT" ]
201    external_deps += [ "hisysevent:libhisysevent" ]
202    sources += [
203      "${appspawn_path}/modules/sysevent/appspawn_hisysevent.cpp",
204      "${appspawn_path}/modules/sysevent/event_reporter.cpp",
205      "${appspawn_path}/modules/sysevent/hisysevent_adapter.cpp",
206    ]
207  }
208
209  if (target_cpu == "arm64" || target_cpu == "x86_64" ||
210      target_cpu == "riscv64") {
211    defines += [ "APPSPAWN_64" ]
212  }
213
214  if (dlp_permission_enable) {
215    cflags_cc = [ "-DWITH_DLP" ]
216    external_deps += [ "dlp_permission_service:libdlp_fuse" ]
217  }
218}
219
220ohos_unittest("AppSpawn_coldrun_ut") {
221  module_out_path = "appspawn/appspawn"
222  if (appspawn_unittest_coverage) {
223    cflags = [ "--coverage" ]
224    ldflags = [ "--coverage" ]
225    cflags_cc = [ "--coverage" ]
226  }
227  deps = []
228  defines = [
229    "APPSPAWN_BASE_DIR=\"/data/appspawn_ut\"",
230    "APPSPAWN_LABEL=\"APPSPAWN_UT\"",
231    "APPSPAWN_TEST",
232    "APPSPAWN_DEBUG",
233    "DEBUG_BEGETCTL_BOOT",
234    "USER_TIMER_TO_CHECK",
235    "OHOS_DEBUG",
236    "GRAPHIC_PERMISSION_CHECK",
237    "capset=CapsetStub",
238    "unshare=UnshareStub",
239    "mount=MountStub",
240    "symlink=SymlinkStub",
241    "chdir=ChdirStub",
242    "chroot=ChrootStub",
243    "syscall=SyscallStub",
244    "umount2=Umount2Stub",
245    "access=AccessStub",
246    "dlopen=DlopenStub",
247    "dlsym=DlsymStub",
248    "dlclose=DlcloseStub",
249    "execv=ExecvStub",
250    "getprocpid=GetprocpidStub",
251    "setgroups=SetgroupsStub",
252    "setresgid=SetresgidStub",
253    "setresuid=SetresuidStub",
254    "setuid=SetuidStub",
255    "setgid=SetgidStub",
256    "execvp=ExecvpStub",
257    "ioctl=IoctlStub",
258    "execve=ExecveStub",
259    "setcon=SetconStub",
260  ]
261
262  include_dirs = [
263    "${appspawn_path}",
264    "${appspawn_path}/common",
265    "${appspawn_path}/standard",
266    "${appspawn_path}/modules/modulemgr",
267    "${appspawn_path}/modules/ace_adapter",
268    "${appspawn_path}/modules/common",
269    "${appspawn_path}/modules/sandbox",
270    "${appspawn_path}/modules/sysevent",
271    "${appspawn_innerkits_path}/client",
272    "${appspawn_innerkits_path}/include",
273    "${appspawn_innerkits_path}/permission",
274    "${appspawn_path}/modules/module_engine/include",
275    "${appspawn_path}/test/mock",
276    "${appspawn_path}/test/unittest",
277    "${appspawn_path}/util/include",
278  ]
279  sources = [
280    "${appspawn_path}/common/appspawn_server.c",
281    "${appspawn_path}/common/appspawn_trace.cpp",
282    "${appspawn_path}/modules/modulemgr/appspawn_modulemgr.c",
283    "${appspawn_path}/standard/appspawn_appmgr.c",
284    "${appspawn_path}/standard/appspawn_kickdog.c",
285    "${appspawn_path}/standard/appspawn_msgmgr.c",
286    "${appspawn_path}/standard/appspawn_service.c",
287    "${appspawn_path}/standard/nwebspawn_launcher.c",
288    "${appspawn_path}/util/src/appspawn_utils.c",
289  ]
290
291  # client
292  sources += [
293    "${appspawn_innerkits_path}/client/appspawn_client.c",
294    "${appspawn_innerkits_path}/client/appspawn_msg.c",
295    "${appspawn_innerkits_path}/permission/appspawn_mount_permission.c",
296  ]
297
298  # modules sources
299  sources += [
300    "${appspawn_path}/modules/ace_adapter/ace_adapter.cpp",
301    "${appspawn_path}/modules/ace_adapter/command_lexer.cpp",
302    "${appspawn_path}/modules/common/appspawn_adapter.cpp",
303    "${appspawn_path}/modules/common/appspawn_begetctl.c",
304    "${appspawn_path}/modules/common/appspawn_cgroup.c",
305    "${appspawn_path}/modules/common/appspawn_common.c",
306    "${appspawn_path}/modules/common/appspawn_dfx_dump.cpp",
307    "${appspawn_path}/modules/common/appspawn_namespace.c",
308    "${appspawn_path}/modules/common/appspawn_silk.c",
309    "${appspawn_path}/modules/nweb_adapter/nwebspawn_adapter.cpp",
310    "${appspawn_path}/modules/sandbox/appspawn_mount_template.c",
311    "${appspawn_path}/modules/sandbox/appspawn_permission.c",
312    "${appspawn_path}/modules/sandbox/appspawn_sandbox.c",
313    "${appspawn_path}/modules/sandbox/sandbox_adapter.cpp",
314    "${appspawn_path}/modules/sandbox/sandbox_cfgvar.c",
315    "${appspawn_path}/modules/sandbox/sandbox_expand.c",
316    "${appspawn_path}/modules/sandbox/sandbox_load.c",
317    "${appspawn_path}/modules/sandbox/sandbox_manager.c",
318  ]
319
320  if (appspawn_use_encaps == true) {
321    sources += [ "${appspawn_path}/modules/common/appspawn_encaps.c" ]
322  }
323
324  # add stub
325  include_dirs += [ "${appspawn_path}/test/mock" ]
326  sources += [
327    "${appspawn_path}/test/mock/app_spawn_stub.cpp",
328    "${appspawn_path}/test/mock/app_system_stub.c",
329  ]
330
331  # add test
332  include_dirs += [ "${appspawn_path}/test/unittest" ]
333  sources += [
334    "${appspawn_path}/test/unittest/app_spawn_standard_test/app_spawn_cold_run_test.cpp",
335    "${appspawn_path}/test/unittest/app_spawn_test_helper.cpp",
336  ]
337
338  if (defined(appspawn_sandbox_new) && appspawn_sandbox_new) {
339    defines += [ "APPSPAWN_SANDBOX_NEW" ]
340  } else {
341    sources += [
342      "${appspawn_path}/modules/sandbox/sandbox_shared_mount.cpp",
343      "${appspawn_path}/modules/sandbox/sandbox_utils.cpp",
344    ]
345  }
346
347  configs = [ "${appspawn_path}:appspawn_config" ]
348  external_deps = [
349    "ability_base:want",
350    "ability_runtime:app_manager",
351    "ability_runtime:appkit_native",
352    "ability_runtime:runtime",
353    "access_token:libtokenid_sdk",
354    "access_token:libtokensetproc_shared",
355    "ace_engine:ace_forward_compatibility",
356    "bundle_framework:appexecfwk_base",
357    "bundle_framework:appexecfwk_core",
358    "cJSON:cjson",
359    "c_utils:utils",
360    "config_policy:configpolicy_util",
361    "eventhandler:libeventhandler",
362    "ffrt:libffrt",
363    "hilog:libhilog",
364    "hitrace:hitrace_meter",
365    "init:libbegetutil",
366    "init:seccomp",
367    "ipc:ipc_core",
368    "napi:ace_napi",
369    "os_account:os_account_innerkits",
370    "resource_management:global_resmgr",
371  ]
372  if (enable_appspawn_dump_catcher) {
373    external_deps += [ "faultloggerd:libdfx_dumpcatcher" ]
374  }
375  if (asan_detector || is_asan) {
376    defines += [ "ASAN_DETECTOR" ]
377    sources += [ "${appspawn_path}/modules/asan/asan_detector.c" ]
378  }
379
380  if (build_selinux) {
381    defines += [ "WITH_SELINUX" ]
382    external_deps += [
383      "selinux:libselinux",
384      "selinux_adapter:libhap_restorecon",
385    ]
386  }
387
388  if (appspawn_report_event) {
389    defines += [ "REPORT_EVENT" ]
390    external_deps += [ "hisysevent:libhisysevent" ]
391    sources += [
392      "${appspawn_path}/modules/sysevent/appspawn_hisysevent.cpp",
393      "${appspawn_path}/modules/sysevent/event_reporter.cpp",
394      "${appspawn_path}/modules/sysevent/hisysevent_adapter.cpp",
395    ]
396  }
397
398  if (target_cpu == "arm64" || target_cpu == "x86_64" ||
399      target_cpu == "riscv64") {
400    defines += [ "APPSPAWN_64" ]
401  }
402
403  if (dlp_permission_enable) {
404    cflags_cc = [ "-DWITH_DLP" ]
405    external_deps += [ "dlp_permission_service:libdlp_fuse" ]
406  }
407}
408
409ohos_unittest("AppSpawn_common_ut") {
410  module_out_path = "appspawn/appspawn"
411  if (appspawn_unittest_coverage) {
412    cflags = [ "--coverage" ]
413    ldflags = [ "--coverage" ]
414    cflags_cc = [ "--coverage" ]
415  }
416  deps = []
417  defines = [
418    "APPSPAWN_BASE_DIR=\"/data/appspawn_ut\"",
419    "APPSPAWN_LABEL=\"APPSPAWN_UT\"",
420    "APPSPAWN_TEST",
421    "APPSPAWN_DEBUG",
422    "DEBUG_BEGETCTL_BOOT",
423    "USER_TIMER_TO_CHECK",
424    "OHOS_DEBUG",
425    "GRAPHIC_PERMISSION_CHECK",
426    "capset=CapsetStub",
427    "unshare=UnshareStub",
428    "mount=MountStub",
429    "symlink=SymlinkStub",
430    "chdir=ChdirStub",
431    "chroot=ChrootStub",
432    "syscall=SyscallStub",
433    "umount2=Umount2Stub",
434    "access=AccessStub",
435    "dlopen=DlopenStub",
436    "dlsym=DlsymStub",
437    "dlclose=DlcloseStub",
438    "execv=ExecvStub",
439    "getprocpid=GetprocpidStub",
440    "setgroups=SetgroupsStub",
441    "setresgid=SetresgidStub",
442    "setresuid=SetresuidStub",
443    "setuid=SetuidStub",
444    "setgid=SetgidStub",
445    "execvp=ExecvpStub",
446    "ioctl=IoctlStub",
447    "execve=ExecveStub",
448    "setcon=SetconStub",
449  ]
450
451  include_dirs = [
452    "${appspawn_path}",
453    "${appspawn_path}/common",
454    "${appspawn_path}/standard",
455    "${appspawn_path}/modules/modulemgr",
456    "${appspawn_path}/modules/ace_adapter",
457    "${appspawn_path}/modules/common",
458    "${appspawn_path}/modules/sandbox",
459    "${appspawn_path}/modules/sysevent",
460    "${appspawn_innerkits_path}/client",
461    "${appspawn_innerkits_path}/include",
462    "${appspawn_innerkits_path}/permission",
463    "${appspawn_path}/modules/module_engine/include",
464    "${appspawn_path}/test/mock",
465    "${appspawn_path}/test/unittest",
466    "${appspawn_path}/util/include",
467  ]
468  sources = [
469    "${appspawn_path}/common/appspawn_server.c",
470    "${appspawn_path}/common/appspawn_trace.cpp",
471    "${appspawn_path}/modules/modulemgr/appspawn_modulemgr.c",
472    "${appspawn_path}/standard/appspawn_appmgr.c",
473    "${appspawn_path}/standard/appspawn_kickdog.c",
474    "${appspawn_path}/standard/appspawn_msgmgr.c",
475    "${appspawn_path}/standard/appspawn_service.c",
476    "${appspawn_path}/standard/nwebspawn_launcher.c",
477    "${appspawn_path}/util/src/appspawn_utils.c",
478  ]
479
480  # client
481  sources += [
482    "${appspawn_innerkits_path}/client/appspawn_client.c",
483    "${appspawn_innerkits_path}/client/appspawn_msg.c",
484    "${appspawn_innerkits_path}/permission/appspawn_mount_permission.c",
485  ]
486
487  # modules sources
488  sources += [
489    "${appspawn_path}/modules/ace_adapter/ace_adapter.cpp",
490    "${appspawn_path}/modules/ace_adapter/command_lexer.cpp",
491    "${appspawn_path}/modules/common/appspawn_adapter.cpp",
492    "${appspawn_path}/modules/common/appspawn_begetctl.c",
493    "${appspawn_path}/modules/common/appspawn_cgroup.c",
494    "${appspawn_path}/modules/common/appspawn_common.c",
495    "${appspawn_path}/modules/common/appspawn_dfx_dump.cpp",
496    "${appspawn_path}/modules/common/appspawn_encaps.c",
497    "${appspawn_path}/modules/common/appspawn_namespace.c",
498    "${appspawn_path}/modules/common/appspawn_silk.c",
499    "${appspawn_path}/modules/nweb_adapter/nwebspawn_adapter.cpp",
500    "${appspawn_path}/modules/sandbox/appspawn_mount_template.c",
501    "${appspawn_path}/modules/sandbox/appspawn_permission.c",
502    "${appspawn_path}/modules/sandbox/appspawn_sandbox.c",
503    "${appspawn_path}/modules/sandbox/sandbox_adapter.cpp",
504    "${appspawn_path}/modules/sandbox/sandbox_cfgvar.c",
505    "${appspawn_path}/modules/sandbox/sandbox_expand.c",
506    "${appspawn_path}/modules/sandbox/sandbox_load.c",
507    "${appspawn_path}/modules/sandbox/sandbox_manager.c",
508  ]
509
510  # add stub
511  include_dirs += [ "${appspawn_path}/test/mock" ]
512  sources += [
513    "${appspawn_path}/test/mock/app_spawn_stub.cpp",
514    "${appspawn_path}/test/mock/app_system_stub.c",
515  ]
516
517  # add test
518  include_dirs += [ "${appspawn_path}/test/unittest" ]
519  sources += [
520    "${appspawn_path}/test/unittest/app_spawn_standard_test/app_spawn_common_test.cpp",
521    "${appspawn_path}/test/unittest/app_spawn_test_helper.cpp",
522  ]
523
524  if (defined(appspawn_sandbox_new) && appspawn_sandbox_new) {
525    defines += [ "APPSPAWN_SANDBOX_NEW" ]
526  } else {
527    sources += [
528      "${appspawn_path}/modules/sandbox/sandbox_shared_mount.cpp",
529      "${appspawn_path}/modules/sandbox/sandbox_utils.cpp",
530    ]
531  }
532
533  configs = [ "${appspawn_path}:appspawn_config" ]
534  external_deps = [
535    "ability_base:want",
536    "ability_runtime:app_manager",
537    "ability_runtime:appkit_native",
538    "ability_runtime:runtime",
539    "access_token:libtokenid_sdk",
540    "access_token:libtokensetproc_shared",
541    "ace_engine:ace_forward_compatibility",
542    "bundle_framework:appexecfwk_base",
543    "bundle_framework:appexecfwk_core",
544    "cJSON:cjson",
545    "c_utils:utils",
546    "config_policy:configpolicy_util",
547    "eventhandler:libeventhandler",
548    "ffrt:libffrt",
549    "hilog:libhilog",
550    "hitrace:hitrace_meter",
551    "init:libbegetutil",
552    "init:seccomp",
553    "ipc:ipc_core",
554    "napi:ace_napi",
555    "os_account:os_account_innerkits",
556    "resource_management:global_resmgr",
557  ]
558  if (enable_appspawn_dump_catcher) {
559    external_deps += [ "faultloggerd:libdfx_dumpcatcher" ]
560  }
561  if (asan_detector || is_asan) {
562    defines += [ "ASAN_DETECTOR" ]
563    sources += [ "${appspawn_path}/modules/asan/asan_detector.c" ]
564  }
565
566  if (build_selinux) {
567    defines += [ "WITH_SELINUX" ]
568    external_deps += [
569      "selinux:libselinux",
570      "selinux_adapter:libhap_restorecon",
571    ]
572  }
573
574  if (appspawn_report_event) {
575    defines += [ "REPORT_EVENT" ]
576    external_deps += [ "hisysevent:libhisysevent" ]
577    sources += [
578      "${appspawn_path}/modules/sysevent/appspawn_hisysevent.cpp",
579      "${appspawn_path}/modules/sysevent/event_reporter.cpp",
580      "${appspawn_path}/modules/sysevent/hisysevent_adapter.cpp",
581    ]
582  }
583
584  if (target_cpu == "arm64" || target_cpu == "x86_64" ||
585      target_cpu == "riscv64") {
586    defines += [ "APPSPAWN_64" ]
587  }
588
589  if (dlp_permission_enable) {
590    cflags_cc = [ "-DWITH_DLP" ]
591    external_deps += [ "dlp_permission_service:libdlp_fuse" ]
592  }
593}
594