1d9f0492fSopenharmony_ci# Copyright (c) 2022 Huawei Device Co., Ltd.
2d9f0492fSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
3d9f0492fSopenharmony_ci# you may not use this file except in compliance with the License.
4d9f0492fSopenharmony_ci# You may obtain a copy of the License at
5d9f0492fSopenharmony_ci#
6d9f0492fSopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0
7d9f0492fSopenharmony_ci#
8d9f0492fSopenharmony_ci# Unless required by applicable law or agreed to in writing, software
9d9f0492fSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
10d9f0492fSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11d9f0492fSopenharmony_ci# See the License for the specific language governing permissions and
12d9f0492fSopenharmony_ci# limitations under the License.
13d9f0492fSopenharmony_ciimport("//base/startup/init/begetd.gni")
14d9f0492fSopenharmony_ci
15d9f0492fSopenharmony_ciinit_common_sources = [
16d9f0492fSopenharmony_ci  "../init_capability.c",
17d9f0492fSopenharmony_ci  "../init_common_cmds.c",
18d9f0492fSopenharmony_ci  "../init_common_service.c",
19d9f0492fSopenharmony_ci  "../init_config.c",
20d9f0492fSopenharmony_ci  "../init_group_manager.c",
21d9f0492fSopenharmony_ci  "../init_service_file.c",
22d9f0492fSopenharmony_ci  "../init_service_manager.c",
23d9f0492fSopenharmony_ci  "../init_service_socket.c",
24d9f0492fSopenharmony_ci  "../main.c",
25d9f0492fSopenharmony_ci]
26d9f0492fSopenharmony_ci
27d9f0492fSopenharmony_ci# feature: init
28d9f0492fSopenharmony_ciexecutable("init") {
29d9f0492fSopenharmony_ci  output_name = "init"
30d9f0492fSopenharmony_ci  defines = [
31d9f0492fSopenharmony_ci    "_GNU_SOURCE",
32d9f0492fSopenharmony_ci    "OHOS_LITE",
33d9f0492fSopenharmony_ci    "__MUSL__",
34d9f0492fSopenharmony_ci  ]
35d9f0492fSopenharmony_ci  if (init_feature_begetctl_liteos) {
36d9f0492fSopenharmony_ci    defines += [ "LITEOS_SUPPORT" ]
37d9f0492fSopenharmony_ci  }
38d9f0492fSopenharmony_ci  sources = [
39d9f0492fSopenharmony_ci    "../adapter/init_adapter.c",
40d9f0492fSopenharmony_ci    "../lite/init.c",
41d9f0492fSopenharmony_ci    "../lite/init_cmds.c",
42d9f0492fSopenharmony_ci    "../lite/init_jobs.c",
43d9f0492fSopenharmony_ci    "../lite/init_reboot.c",
44d9f0492fSopenharmony_ci    "../lite/init_service.c",
45d9f0492fSopenharmony_ci    "../lite/init_signal_handler.c",
46d9f0492fSopenharmony_ci  ]
47d9f0492fSopenharmony_ci  sources += init_common_sources
48d9f0492fSopenharmony_ci
49d9f0492fSopenharmony_ci  include_dirs = [
50d9f0492fSopenharmony_ci    "//base/startup/init/interfaces/innerkits/include",
51d9f0492fSopenharmony_ci    "//base/startup/init/interfaces/innerkits/fd_holder",
52d9f0492fSopenharmony_ci    "//base/startup/init/interfaces/innerkits/include/param",
53d9f0492fSopenharmony_ci    "//base/startup/init/services/init/include",
54d9f0492fSopenharmony_ci    "//third_party/cJSON",
55d9f0492fSopenharmony_ci    "//base/hiviewdfx/hilog_lite/interfaces/native/kits",
56d9f0492fSopenharmony_ci  ]
57d9f0492fSopenharmony_ci
58d9f0492fSopenharmony_ci  ldflags = []
59d9f0492fSopenharmony_ci  deps = [
60d9f0492fSopenharmony_ci    "//base/hiviewdfx/hilog_lite/frameworks/featured:hilog_shared",
61d9f0492fSopenharmony_ci    "//base/startup/init/services/log:init_log",
62d9f0492fSopenharmony_ci    "//base/startup/init/services/loopevent:loopevent",
63d9f0492fSopenharmony_ci    "//base/startup/init/services/modules/init_hook:inithook",
64d9f0492fSopenharmony_ci    "//base/startup/init/services/param/base:param_base",
65d9f0492fSopenharmony_ci    "//base/startup/init/services/utils:libinit_utils",
66d9f0492fSopenharmony_ci    "//build/lite/config/component/cJSON:cjson_static",
67d9f0492fSopenharmony_ci  ]
68d9f0492fSopenharmony_ci  external_deps = [ "bounds_checking_function:libsec_static" ]
69d9f0492fSopenharmony_ci
70d9f0492fSopenharmony_ci  if (ohos_kernel_type == "liteos_a") {
71d9f0492fSopenharmony_ci    defines += [ "__LITEOS_A__" ]
72d9f0492fSopenharmony_ci    include_dirs += [
73d9f0492fSopenharmony_ci      "//kernel/liteos_a/syscall",
74d9f0492fSopenharmony_ci      "//kernel/liteos_a/kernel/include",
75d9f0492fSopenharmony_ci      "//base/startup/init/interfaces/kits/syscap",
76d9f0492fSopenharmony_ci      "//base/startup/init/initsync/include",
77d9f0492fSopenharmony_ci    ]
78d9f0492fSopenharmony_ci    deps += [
79d9f0492fSopenharmony_ci      "//base/startup/init/initsync:initsync",
80d9f0492fSopenharmony_ci      "//base/startup/init/services/param/liteos:param_init_lite",
81d9f0492fSopenharmony_ci    ]
82d9f0492fSopenharmony_ci  }
83d9f0492fSopenharmony_ci  if (ohos_kernel_type == "linux") {
84d9f0492fSopenharmony_ci    defines += [
85d9f0492fSopenharmony_ci      "NEED_EXEC_RCS_LINUX",
86d9f0492fSopenharmony_ci      "__LINUX__",
87d9f0492fSopenharmony_ci    ]
88d9f0492fSopenharmony_ci    ldflags += [
89d9f0492fSopenharmony_ci      "-lm",
90d9f0492fSopenharmony_ci      "-lpthread",
91d9f0492fSopenharmony_ci    ]
92d9f0492fSopenharmony_ci    deps += [
93d9f0492fSopenharmony_ci      "//base/startup/init/services/param/linux:param_init",
94d9f0492fSopenharmony_ci      "//third_party/mksh",
95d9f0492fSopenharmony_ci    ]
96d9f0492fSopenharmony_ci    external_deps += [ "toybox:toybox" ]
97d9f0492fSopenharmony_ci  }
98d9f0492fSopenharmony_ci}
99