BUILD.gn 6.1 KB
Newer Older
M
mamingshuai 已提交
1 2 3 4 5 6 7 8 9 10 11 12
# Copyright (c) 2020 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
Z
zhong_ning 已提交
13 14
if (defined(ohos_lite)) {
  # feature: init
15 16
  executable("init_lite") {
    output_name = "init"
Z
zhong_ning 已提交
17 18
    defines = [
      "_GNU_SOURCE",  #syscall function need this macro definition
Z
zhong_ning 已提交
19
      "OHOS_LITE",
Z
zhong_ning 已提交
20 21
    ]
    sources = [
Z
zhong_ning 已提交
22
      "log/init_log.c",
Z
zhong_ning 已提交
23
      "src/init_adapter.c",
Z
zhong_ning 已提交
24
      "src/init_capability.c",
Z
zhong_ning 已提交
25
      "src/init_cmds.c",
Z
zhong_ning 已提交
26
      "src/init_import.c",
Z
zhong_ning 已提交
27 28
      "src/init_jobs.c",
      "src/init_read_cfg.c",
Z
zhong_ning 已提交
29
      "src/init_reboot.c",
Z
zhong_ning 已提交
30 31
      "src/init_service.c",
      "src/init_service_manager.c",
Z
zhong_ning 已提交
32
      "src/init_service_socket.c",
Z
zhong_ning 已提交
33 34
      "src/init_signal_handler.c",
      "src/main.c",
S
sun_fan 已提交
35
      "utils/init_utils.c",
Z
zhong_ning 已提交
36
    ]
M
mamingshuai 已提交
37

Z
zhong_ning 已提交
38
    include_dirs = [
Z
zhong_ning 已提交
39
      "//base/startup/init_lite/services/include",
Z
zhong_ning 已提交
40 41
      "//base/startup/init_lite/services/param/include",
      "//base/startup/init_lite/services/log",
S
sun_fan 已提交
42
      "//base/startup/init_lite/services/utils",
Z
zhong_ning 已提交
43 44 45
      "//third_party/cJSON",
      "//third_party/bounds_checking_function/include",
      "//base/startup/syspara_lite/interfaces/kits",
Z
zhong_ning 已提交
46
      "//base/hiviewdfx/hilog_lite/interfaces/native/kits",
Z
zhong_ning 已提交
47
    ]
M
mamingshuai 已提交
48

Z
zhong_ning 已提交
49
    cflags = [ "-Wall" ]
M
mamingshuai 已提交
50

Z
zhong_ning 已提交
51
    deps = [
Z
zhong_ning 已提交
52
      "//base/hiviewdfx/hilog_lite/frameworks/featured:hilog_shared",
53
      "//base/startup/init_lite/initsync:initsync",
Z
zhong_ning 已提交
54
      "//base/startup/syspara_lite/frameworks/parameter:parameter",
Z
zhong_ning 已提交
55 56 57 58 59
      "//build/lite/config/component/cJSON:cjson_shared",
      "//third_party/bounds_checking_function:libsec_shared",
    ]
    ldflags = []
    if (ohos_kernel_type == "liteos_a") {
60
      include_dirs += [
S
sun_fan 已提交
61
        "//kernel/liteos_a/syscall",
62 63 64 65
        "//base/startup/init_lite/interfaces/kits",
        "//base/startup/init_lite/initsync/include",
      ]
      deps += [ "//base/startup/init_lite/initsync:initsync" ]
Z
zhong_ning 已提交
66 67 68 69 70 71 72
    }
    if (ohos_kernel_type == "linux") {
      defines += [ "NEED_EXEC_RCS_LINUX" ]
      ldflags += [
        "-lm",
        "-lpthread",
      ]
Y
yangming_ha 已提交
73
      deps += [
74 75 76
        "//third_party/mksh",
        "//third_party/toybox",
      ]
Z
zhong_ning 已提交
77 78
    }
  }
M
mamingshuai 已提交
79

Z
zhong_ning 已提交
80 81
  if (ohos_build_type == "debug") {
    group("unittest") {
Z
zhong_ning 已提交
82 83
      deps =
          [ "//base/startup/init_lite/services/test/unittest/common:unittest" ]
Z
zhong_ning 已提交
84 85 86 87
    }
  }
} else {
  import("//build/ohos.gni")
M
mamingshuai 已提交
88

Z
zhong_ning 已提交
89
  ohos_executable("init") {
90 91 92
    sources = [
      "src/device.c",
      "src/init_adapter.c",
Z
zhong_ning 已提交
93
      "src/init_capability.c",
94
      "src/init_cmds.c",
Z
zhong_ning 已提交
95
      "src/init_import.c",
96 97
      "src/init_jobs.c",
      "src/init_read_cfg.c",
Z
zhong_ning 已提交
98
      "src/init_reboot.c",
99 100
      "src/init_service.c",
      "src/init_service_manager.c",
Z
zhong_ning 已提交
101
      "src/init_service_socket.c",
102 103 104 105
      "src/init_signal_handler.c",
      "src/main.c",
    ]
    include_dirs = [
Z
zhong_ning 已提交
106
      "//base/startup/init_lite/services/include/param",
Z
zhong_ning 已提交
107
      "//base/startup/init_lite/services/include",
Z
zhong_ning 已提交
108
      "//base/startup/init_lite/services/log",
S
sun_fan 已提交
109
      "//base/startup/init_lite/services/utils",
110 111
      "//third_party/cJSON",
      "//third_party/bounds_checking_function/include",
Z
zhong_ning 已提交
112
      "//third_party/libuv/include",
113 114
    ]
    deps = [
Z
zhong_ning 已提交
115
      "//base/startup/init_lite/services/log:init_log",
S
sun_fan 已提交
116
      "//base/startup/init_lite/services/param:param_service",
S
sun_fan 已提交
117
      "//base/startup/init_lite/services/utils:libinit_utils",
118 119 120
      "//third_party/bounds_checking_function:libsec_static",
      "//third_party/cJSON:cjson_static",
    ]
Z
zhong_ning 已提交
121 122 123
    if (use_musl) {
      deps += [
        "//third_party/mksh:sh",
Z
zhong_ning 已提交
124
        "//third_party/toybox:toybox",
Z
zhong_ning 已提交
125 126
      ]
    }
Z
zhong_ning 已提交
127 128 129 130
    install_images = [
      "system",
      "updater",
    ]
131
    install_enable = true
Z
zhong_ning 已提交
132
    part_name = "init"
M
mamingshuai 已提交
133 134
  }

Z
zhong_ning 已提交
135 136 137 138
  group("startup_init") {
    deps = [
      ":init",
      ":init_etc",
S
sun_fan 已提交
139
      "//base/startup/init_lite/interfaces/innerkits/dynamic_service:dynamic_service",
Z
zhong_ning 已提交
140
      "//base/startup/init_lite/interfaces/innerkits/socket:libsocket",
Z
zhong_ning 已提交
141 142
      "//base/startup/init_lite/services/cmds/reboot:reboot",
      "//base/startup/init_lite/services/cmds/service_control:service_control",
S
sun_fan 已提交
143 144 145 146 147 148 149
      "//base/startup/init_lite/services/param:param",
      "//base/startup/init_lite/services/param:param_client",
      "//base/startup/init_lite/services/param:param_service",
      "//base/startup/init_lite/services/param:param_watcher",
      "//base/startup/init_lite/services/param:param_watcher.rc",
      "//base/startup/init_lite/services/param:param_watcheragent",
      "//base/startup/init_lite/services/param/watcher/sa_profile:param_watcher_profile",
Z
zhong_ning 已提交
150 151 152 153
    ]
  }

  # init etc files group
Z
zhong_ning 已提交
154
  ohos_prebuilt_etc("init.cfg") {
S
sun_fan 已提交
155
    source = "//base/startup/init_lite/services/etc/init.cfg"
Z
zhong_ning 已提交
156 157 158
    part_name = "init"
  }

Z
zhong_ning 已提交
159 160
  ohos_prebuilt_etc("passwd") {
    source = "//base/startup/init_lite/services/etc/passwd"
Z
zhong_ning 已提交
161 162 163 164
    install_images = [
      "system",
      "updater",
    ]
Z
zhong_ning 已提交
165 166 167
    part_name = "init"
  }

S
sun_fan 已提交
168 169
  ohos_prebuilt_etc("group") {
    source = "//base/startup/init_lite/services/etc/group"
Z
zhong_ning 已提交
170 171 172 173
    install_images = [
      "system",
      "updater",
    ]
S
sun_fan 已提交
174 175 176
    part_name = "init"
  }

Z
zhong_ning 已提交
177 178 179 180 181 182 183 184 185 186
  ohos_prebuilt_etc("init.usb.cfg") {
    source = "//base/startup/init_lite/services/etc/init.usb.cfg"
    part_name = "init"
  }

  ohos_prebuilt_etc("init.usb.configfs.cfg") {
    source = "//base/startup/init_lite/services/etc/init.usb.configfs.cfg"
    part_name = "init"
  }

Z
zhong_ning 已提交
187
  ohos_prebuilt_etc("ohos.para") {
S
sun_fan 已提交
188
    source = "//base/startup/init_lite/services/etc/param/ohos.para"
Z
zhong_ning 已提交
189
    part_name = "init"
S
sun_fan 已提交
190 191 192 193 194 195 196
    module_install_dir = "etc/param"
  }

  ohos_prebuilt_etc("ohos.para.dac") {
    source = "//base/startup/init_lite/services/etc/param/ohos.para.dac"
    part_name = "init"
    module_install_dir = "etc/param"
Z
zhong_ning 已提交
197 198
  }

Z
zhong_ning 已提交
199
  group("init_etc") {
Z
zhong_ning 已提交
200
    deps = [
Z
zhong_ning 已提交
201
      ":group",
Z
zhong_ning 已提交
202
      ":init.cfg",
Z
zhong_ning 已提交
203 204
      ":init.usb.cfg",
      ":init.usb.configfs.cfg",
Z
zhong_ning 已提交
205
      ":ohos.para",
S
sun_fan 已提交
206
      ":ohos.para.dac",
Z
zhong_ning 已提交
207
      ":passwd",
Z
zhong_ning 已提交
208
    ]
M
mamingshuai 已提交
209 210
  }
}