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