• 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    "c_utils:utils",
70    "config_policy:configpolicy_util",
71    "hilog:libhilog",
72    "hitrace:hitrace_meter",
73    "init:libbegetutil",
74  ]
75  if (enable_appspawn_dump_catcher) {
76    external_deps += [ "faultloggerd:libdfx_dumpcatcher" ]
77  }
78  if (appspawn_use_encaps) {
79    defines += [ "USE_ENCAPS" ]
80  }
81  if (appspawn_report_event) {
82    defines += [ "APPSPAWN_HISYSEVENT" ]
83    external_deps += [ "hisysevent:libhisysevent" ]
84    sources += [ "${appspawn_path}/modules/sysevent/appspawn_hisysevent.cpp" ]
85  }
86  if (appspawn_use_encaps) {
87    defines += [ "USE_ENCAPS" ]
88  }
89  if (build_selinux) {
90    defines += [ "WITH_SELINUX" ]
91    external_deps += [
92      "selinux:libselinux",
93      "selinux_adapter:libhap_restorecon",
94    ]
95  }
96  cflags = []
97
98  #ldflags = [ "-Wl,--dynamic-linker,/system/bin/linker64z" ]
99  if (!defined(global_parts_info) ||
100      defined(global_parts_info.security_code_signature)) {
101    defines += [ "CODE_SIGNATURE_ENABLE" ]
102    external_deps += [ "code_signature:libcode_sign_attr_utils" ]
103  }
104
105  version_script = get_label_info(
106                       "${appspawn_path}/modules/module_engine:libappspawn_stub_versionscript",
107                       "target_gen_dir") + "/" + get_label_info(
108                       "${appspawn_path}/modules/module_engine:libappspawn_stub_versionscript",
109                       "name") + stub_version_script_suffix
110
111  install_enable = true
112  subsystem_name = "${subsystem_name}"
113  part_name = "${part_name}"
114}
115
116ohos_shared_library("appspawn_helper") {
117  sources = [ "${appspawn_path}/common/appspawn_server.c" ]
118  defines = [ "APPSPAWN_HELPER" ]
119  configs = [
120    ":appspawn_server_config",
121    "${appspawn_path}:appspawn_config",
122  ]
123  cflags = [
124    "-fvisibility=hidden",
125    "-fstack-protector-all",
126  ]
127  external_deps = [
128    "hilog:libhilog",
129    "init:libbegetutil",
130  ]
131
132  install_enable = true
133  subsystem_name = "${subsystem_name}"
134  part_name = "${part_name}"
135}
136
137ohos_prebuilt_etc("appspawn.rc") {
138  source = "appspawn.cfg"
139  relative_install_dir = "init"
140  subsystem_name = "${subsystem_name}"
141  part_name = "${part_name}"
142}
143
144ohos_executable("pid_ns_init") {
145  sources = [ "${appspawn_path}/standard/pid_ns_init.c" ]
146  install_enable = true
147  subsystem_name = "${subsystem_name}"
148  part_name = "${part_name}"
149}
150
151# to support cjappspawn
152ohos_executable("cjappspawn") {
153  sources = [
154    "${appspawn_path}/common/appspawn_server.c",
155    "${appspawn_path}/common/appspawn_trace.cpp",
156    "${appspawn_path}/modules/modulemgr/appspawn_modulemgr.c",
157    "${appspawn_path}/standard/appspawn_appmgr.c",
158    "${appspawn_path}/standard/appspawn_kickdog.c",
159    "${appspawn_path}/standard/appspawn_main.c",
160    "${appspawn_path}/standard/appspawn_msgmgr.c",
161    "${appspawn_path}/standard/appspawn_service.c",
162    "${appspawn_path}/standard/nwebspawn_launcher.c",
163  ]
164
165  defines = [ "CJAPP_SPAWN" ]
166  configs = [
167    ":appspawn_server_config",
168    "${appspawn_path}:appspawn_config",
169  ]
170  deps = [
171    "${appspawn_path}/modules/module_engine:libappspawn_stub_versionscript",
172    "${appspawn_path}/util:libappspawn_util",
173  ]
174  if (asan_detector || is_asan) {
175    defines += [ "ASAN_DETECTOR" ]
176  }
177
178  external_deps = [
179    "c_utils:utils",
180    "config_policy:configpolicy_util",
181    "hilog:libhilog",
182    "hitrace:hitrace_meter",
183    "init:libbegetutil",
184  ]
185  if (appspawn_report_event) {
186    defines += [ "APPSPAWN_HISYSEVENT" ]
187    external_deps += [ "hisysevent:libhisysevent" ]
188    sources += [ "${appspawn_path}/modules/sysevent/appspawn_hisysevent.cpp" ]
189  }
190  if (build_selinux) {
191    defines += [ "WITH_SELINUX" ]
192    external_deps += [
193      "selinux:libselinux",
194      "selinux_adapter:libhap_restorecon",
195    ]
196  }
197  cflags = []
198
199  #ldflags = [ "-Wl,--dynamic-linker,/system/bin/linker64z" ]
200  if (!defined(global_parts_info) ||
201      defined(global_parts_info.security_code_signature)) {
202    defines += [ "CODE_SIGNATURE_ENABLE" ]
203    external_deps += [ "code_signature:libcode_sign_attr_utils" ]
204  }
205
206  version_script = get_label_info(
207                       "${appspawn_path}/modules/module_engine:libappspawn_stub_versionscript",
208                       "target_gen_dir") + "/" + get_label_info(
209                       "${appspawn_path}/modules/module_engine:libappspawn_stub_versionscript",
210                       "name") + stub_version_script_suffix
211
212  install_enable = true
213  subsystem_name = "${subsystem_name}"
214  part_name = "${part_name}"
215}
216
217# to support nativespawn
218ohos_executable("nativespawn") {
219  sources = [
220    "${appspawn_path}/common/appspawn_server.c",
221    "${appspawn_path}/common/appspawn_trace.cpp",
222    "${appspawn_path}/modules/modulemgr/appspawn_modulemgr.c",
223    "${appspawn_path}/standard/appspawn_appmgr.c",
224    "${appspawn_path}/standard/appspawn_kickdog.c",
225    "${appspawn_path}/standard/appspawn_main.c",
226    "${appspawn_path}/standard/appspawn_msgmgr.c",
227    "${appspawn_path}/standard/appspawn_service.c",
228    "${appspawn_path}/standard/nwebspawn_launcher.c",
229  ]
230
231  defines = [ "NATIVE_SPAWN" ]
232  configs = [
233    ":appspawn_server_config",
234    "${appspawn_path}:appspawn_config",
235  ]
236  deps = [
237    "${appspawn_path}/modules/module_engine:libappspawn_stub_versionscript",
238    "${appspawn_path}/util:libappspawn_util",
239  ]
240  if (asan_detector || is_asan) {
241    defines += [ "ASAN_DETECTOR" ]
242  }
243
244  external_deps = [
245    "c_utils:utils",
246    "config_policy:configpolicy_util",
247    "hilog:libhilog",
248    "hitrace:hitrace_meter",
249    "init:libbegetutil",
250  ]
251  if (appspawn_report_event) {
252    defines += [ "APPSPAWN_HISYSEVENT" ]
253    external_deps += [ "hisysevent:libhisysevent" ]
254    sources += [ "${appspawn_path}/modules/sysevent/appspawn_hisysevent.cpp" ]
255  }
256  if (build_selinux) {
257    defines += [ "WITH_SELINUX" ]
258    external_deps += [
259      "selinux:libselinux",
260      "selinux_adapter:libhap_restorecon",
261    ]
262  }
263  cflags = []
264
265  #ldflags = [ "-Wl,--dynamic-linker,/system/bin/linker64z" ]
266  if (!defined(global_parts_info) ||
267      defined(global_parts_info.security_code_signature)) {
268    defines += [ "CODE_SIGNATURE_ENABLE" ]
269    external_deps += [ "code_signature:libcode_sign_attr_utils" ]
270  }
271
272  version_script = get_label_info(
273                       "${appspawn_path}/modules/module_engine:libappspawn_stub_versionscript",
274                       "target_gen_dir") + "/" + get_label_info(
275                       "${appspawn_path}/modules/module_engine:libappspawn_stub_versionscript",
276                       "name") + stub_version_script_suffix
277
278  install_enable = true
279  subsystem_name = "${subsystem_name}"
280  part_name = "${part_name}"
281}
282
283ohos_prebuilt_etc("cjappspawn.rc") {
284  source = "cjappspawn.cfg"
285  relative_install_dir = "init"
286  subsystem_name = "${subsystem_name}"
287  part_name = "${part_name}"
288}
289
290ohos_prebuilt_etc("nativespawn.rc") {
291  source = "nativespawn.cfg"
292  relative_install_dir = "init"
293  subsystem_name = "${subsystem_name}"
294  part_name = "${part_name}"
295}
296