• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2021-2022 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.
13import("//base/startup/appspawn/appspawn.gni")
14import("//build/ohos.gni")
15import("//build/ohos/native_stub/native_stub.gni")
16
17config("appspawn_server_config") {
18  visibility = [ ":*" ]
19  include_dirs = [
20    "${appspawn_path}/common",
21    "${appspawn_path}/standard",
22    "${appspawn_path}/modules/common",
23    "${appspawn_path}/modules/modulemgr",
24    "${appspawn_path}/modules/sysevent",
25  ]
26
27  cflags = []
28  if (build_selinux) {
29    cflags += [ "-DWITH_SELINUX" ]
30  }
31
32  if (build_seccomp) {
33    cflags += [ "-DWITH_SECCOMP" ]
34  }
35  configs = [ "${appspawn_path}:appspawn_config" ]
36}
37
38ohos_executable("appspawn") {
39  sources = [
40    "${appspawn_path}/common/appspawn_server.c",
41    "${appspawn_path}/common/appspawn_trace.cpp",
42    "${appspawn_path}/modules/common/appspawn_dfx_dump.cpp",
43    "${appspawn_path}/modules/modulemgr/appspawn_modulemgr.c",
44    "${appspawn_path}/standard/appspawn_appmgr.c",
45    "${appspawn_path}/standard/appspawn_kickdog.c",
46    "${appspawn_path}/standard/appspawn_main.c",
47    "${appspawn_path}/standard/appspawn_msgmgr.c",
48    "${appspawn_path}/standard/appspawn_service.c",
49    "${appspawn_path}/standard/nwebspawn_launcher.c",
50  ]
51
52  defines = []
53  configs = [
54    ":appspawn_server_config",
55    "${appspawn_path}:appspawn_config",
56  ]
57  deps = [
58    "${appspawn_path}/modules/module_engine:libappspawn_stub_versionscript",
59    "${appspawn_path}/util:libappspawn_util",
60  ]
61  if (asan_detector || is_asan) {
62    defines += [ "ASAN_DETECTOR" ]
63  }
64  if (is_debug || build_variant == "root") {
65    defines += [ "DEBUG_BEGETCTL_BOOT" ]
66  }
67
68  external_deps = [
69    "cJSON:cjson",
70    "c_utils:utils",
71    "config_policy:configpolicy_util",
72    "hilog:libhilog",
73    "hitrace:hitrace_meter",
74    "init:libbegetutil",
75  ]
76  if (enable_appspawn_dump_catcher) {
77    external_deps += [ "faultloggerd:libdfx_dumpcatcher" ]
78  }
79
80  if (appspawn_report_event) {
81    defines += [ "APPSPAWN_HISYSEVENT" ]
82    external_deps += [ "hisysevent:libhisysevent" ]
83    sources += [
84      "${appspawn_path}/modules/sysevent/appspawn_hisysevent.cpp",
85      "${appspawn_path}/modules/sysevent/hisysevent_adapter.cpp",
86    ]
87  }
88  if (build_selinux) {
89    defines += [ "WITH_SELINUX" ]
90    external_deps += [
91      "selinux:libselinux",
92      "selinux_adapter:libhap_restorecon",
93    ]
94  }
95  cflags = []
96
97  #ldflags = [ "-Wl,--dynamic-linker,/system/bin/linker64z" ]
98  if (!defined(global_parts_info) ||
99      defined(global_parts_info.security_code_signature)) {
100    defines += [ "CODE_SIGNATURE_ENABLE" ]
101    external_deps += [ "code_signature:libcode_sign_attr_utils" ]
102  }
103
104  version_script = get_label_info(
105                       "${appspawn_path}/modules/module_engine:libappspawn_stub_versionscript",
106                       "target_gen_dir") + "/" + get_label_info(
107                       "${appspawn_path}/modules/module_engine:libappspawn_stub_versionscript",
108                       "name") + stub_version_script_suffix
109
110  install_enable = true
111  subsystem_name = "${subsystem_name}"
112  part_name = "${part_name}"
113}
114
115ohos_shared_library("appspawn_helper") {
116  sources = [ "${appspawn_path}/common/appspawn_server.c" ]
117  defines = [ "APPSPAWN_HELPER" ]
118  configs = [
119    ":appspawn_server_config",
120    "${appspawn_path}:appspawn_config",
121  ]
122  cflags = [
123    "-fvisibility=hidden",
124    "-fstack-protector-all",
125  ]
126  external_deps = [
127    "hilog:libhilog",
128    "init:libbegetutil",
129  ]
130
131  install_enable = true
132  subsystem_name = "${subsystem_name}"
133  part_name = "${part_name}"
134}
135
136ohos_prebuilt_etc("appspawn.rc") {
137  source = "appspawn.cfg"
138  relative_install_dir = "init"
139  subsystem_name = "${subsystem_name}"
140  part_name = "${part_name}"
141}
142
143ohos_executable("pid_ns_init") {
144  sources = [ "${appspawn_path}/standard/pid_ns_init.c" ]
145  install_enable = true
146  subsystem_name = "${subsystem_name}"
147  part_name = "${part_name}"
148}
149
150# to support cjappspawn
151ohos_executable("cjappspawn") {
152  sources = [
153    "${appspawn_path}/common/appspawn_server.c",
154    "${appspawn_path}/common/appspawn_trace.cpp",
155    "${appspawn_path}/modules/modulemgr/appspawn_modulemgr.c",
156    "${appspawn_path}/standard/appspawn_appmgr.c",
157    "${appspawn_path}/standard/appspawn_kickdog.c",
158    "${appspawn_path}/standard/appspawn_main.c",
159    "${appspawn_path}/standard/appspawn_msgmgr.c",
160    "${appspawn_path}/standard/appspawn_service.c",
161    "${appspawn_path}/standard/nwebspawn_launcher.c",
162  ]
163
164  defines = [ "CJAPP_SPAWN" ]
165  configs = [
166    ":appspawn_server_config",
167    "${appspawn_path}:appspawn_config",
168  ]
169  deps = [
170    "${appspawn_path}/modules/module_engine:libappspawn_stub_versionscript",
171    "${appspawn_path}/util:libappspawn_util",
172  ]
173  if (asan_detector || is_asan) {
174    defines += [ "ASAN_DETECTOR" ]
175  }
176
177  external_deps = [
178    "cJSON:cjson",
179    "c_utils:utils",
180    "config_policy:configpolicy_util",
181    "hilog:libhilog",
182    "hitrace:hitrace_meter",
183    "init:libbegetutil",
184  ]
185
186  if (build_selinux) {
187    defines += [ "WITH_SELINUX" ]
188    external_deps += [
189      "selinux:libselinux",
190      "selinux_adapter:libhap_restorecon",
191    ]
192  }
193  cflags = []
194
195  #ldflags = [ "-Wl,--dynamic-linker,/system/bin/linker64z" ]
196  if (!defined(global_parts_info) ||
197      defined(global_parts_info.security_code_signature)) {
198    defines += [ "CODE_SIGNATURE_ENABLE" ]
199    external_deps += [ "code_signature:libcode_sign_attr_utils" ]
200  }
201
202  version_script = get_label_info(
203                       "${appspawn_path}/modules/module_engine:libappspawn_stub_versionscript",
204                       "target_gen_dir") + "/" + get_label_info(
205                       "${appspawn_path}/modules/module_engine:libappspawn_stub_versionscript",
206                       "name") + stub_version_script_suffix
207
208  install_enable = true
209  subsystem_name = "${subsystem_name}"
210  part_name = "${part_name}"
211}
212
213# to support nativespawn
214ohos_executable("nativespawn") {
215  sources = [
216    "${appspawn_path}/common/appspawn_server.c",
217    "${appspawn_path}/common/appspawn_trace.cpp",
218    "${appspawn_path}/modules/modulemgr/appspawn_modulemgr.c",
219    "${appspawn_path}/standard/appspawn_appmgr.c",
220    "${appspawn_path}/standard/appspawn_kickdog.c",
221    "${appspawn_path}/standard/appspawn_main.c",
222    "${appspawn_path}/standard/appspawn_msgmgr.c",
223    "${appspawn_path}/standard/appspawn_service.c",
224    "${appspawn_path}/standard/nwebspawn_launcher.c",
225  ]
226
227  defines = [ "NATIVE_SPAWN" ]
228  configs = [
229    ":appspawn_server_config",
230    "${appspawn_path}:appspawn_config",
231  ]
232  deps = [
233    "${appspawn_path}/modules/module_engine:libappspawn_stub_versionscript",
234    "${appspawn_path}/util:libappspawn_util",
235  ]
236  if (asan_detector || is_asan) {
237    defines += [ "ASAN_DETECTOR" ]
238  }
239
240  external_deps = [
241    "cJSON:cjson",
242    "c_utils:utils",
243    "config_policy:configpolicy_util",
244    "hilog:libhilog",
245    "hitrace:hitrace_meter",
246    "init:libbegetutil",
247  ]
248
249  if (build_selinux) {
250    defines += [ "WITH_SELINUX" ]
251    external_deps += [
252      "selinux:libselinux",
253      "selinux_adapter:libhap_restorecon",
254    ]
255  }
256  cflags = []
257
258  #ldflags = [ "-Wl,--dynamic-linker,/system/bin/linker64z" ]
259  if (!defined(global_parts_info) ||
260      defined(global_parts_info.security_code_signature)) {
261    defines += [ "CODE_SIGNATURE_ENABLE" ]
262    external_deps += [ "code_signature:libcode_sign_attr_utils" ]
263  }
264
265  version_script = get_label_info(
266                       "${appspawn_path}/modules/module_engine:libappspawn_stub_versionscript",
267                       "target_gen_dir") + "/" + get_label_info(
268                       "${appspawn_path}/modules/module_engine:libappspawn_stub_versionscript",
269                       "name") + stub_version_script_suffix
270
271  install_enable = true
272  subsystem_name = "${subsystem_name}"
273  part_name = "${part_name}"
274}
275
276ohos_prebuilt_etc("cjappspawn.rc") {
277  source = "cjappspawn.cfg"
278  relative_install_dir = "init"
279  subsystem_name = "${subsystem_name}"
280  part_name = "${part_name}"
281}
282
283ohos_prebuilt_etc("nativespawn.rc") {
284  source = "nativespawn.cfg"
285  relative_install_dir = "init"
286  subsystem_name = "${subsystem_name}"
287  part_name = "${part_name}"
288}
289