• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2020-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.
13if (defined(ohos_lite)) {
14  import("//base/startup/init/begetd.gni")
15  import("//build/lite/config/component/lite_component.gni")
16  import("//build/lite/config/test.gni")
17  if (ohos_kernel_type == "linux" || ohos_kernel_type == "liteos_a") {
18    init_common_sources = [
19      "//base/startup/init/services/init/adapter/init_adapter.c",
20      "//base/startup/init/services/init/init_capability.c",
21      "//base/startup/init/services/init/init_common_cmds.c",
22      "//base/startup/init/services/init/init_common_service.c",
23      "//base/startup/init/services/init/init_config.c",
24      "//base/startup/init/services/init/init_group_manager.c",
25      "//base/startup/init/services/init/init_service_file.c",
26      "//base/startup/init/services/init/init_service_manager.c",
27      "//base/startup/init/services/init/init_service_socket.c",
28      "//base/startup/init/services/init/lite/init.c",
29      "//base/startup/init/services/init/lite/init_cmds.c",
30      "//base/startup/init/services/init/lite/init_jobs.c",
31      "//base/startup/init/services/init/lite/init_reboot.c",
32      "//base/startup/init/services/init/lite/init_service.c",
33      "//base/startup/init/services/init/lite/init_signal_handler.c",
34      "//base/startup/init/services/log/init_log.c",
35      "//base/startup/init/services/utils/init_utils.c",
36    ]
37  }
38  param_common_sources = [
39    "//base/startup/init/services/modules/init_hook/param_hook.c",
40    "//base/startup/init/services/param/manager/param_manager.c",
41    "//base/startup/init/services/param/manager/param_persist.c",
42    "//base/startup/init/services/param/manager/param_server.c",
43  ]
44
45  base_sources = [
46    "//base/startup/init/services/log/init_commlog.c",
47    "//base/startup/init/services/param/base/param_base.c",
48    "//base/startup/init/services/param/base/param_comm.c",
49    "//base/startup/init/services/param/base/param_trie.c",
50    "//base/startup/init/services/utils/init_hashmap.c",
51    "//base/startup/init/services/utils/list.c",
52  ]
53
54  sysparam_source = [
55    "//base/startup/init/interfaces/innerkits/syspara/param_comm.c",
56    "//base/startup/init/interfaces/innerkits/syspara/parameter.c",
57    "//base/startup/init/interfaces/innerkits/syspara/sysversion.c",
58  ]
59
60  unittest("init_test") {
61    output_extension = "bin"
62    output_dir = "$root_out_dir/test/unittest/startup"
63    ldflags = [
64      "-lstdc++",
65      "-lpthread",
66      "-lm",
67    ]
68    defines = [
69      "OHOS_LITE",
70      "__MUSL__",
71      "_GNU_SOURCE",
72      "READ_CHECK",
73      "STARTUP_INIT_TEST",
74      "PARAM_SUPPORT_DAC",
75      "USE_MBEDTLS",
76      "STARTUP_INIT_UT_PATH =\"/userdata/init_ut\"",
77    ]
78    if (storage_type == "emmc") {
79      defines += [ "USE_EMMC_STORAGE" ]
80    }
81
82    include_dirs = [
83      "//base/startup/init/services/include",
84      "//base/startup/init/services/include/param",
85      "//base/startup/init/services/init/include",
86      "//base/startup/init/services/log",
87      "//base/startup/init/services/loopevent/include",
88      "//base/startup/init/services/loopevent/timer",
89      "//base/startup/init/services/loopevent/task",
90      "//base/startup/init/services/loopevent/utils",
91      "//base/startup/init/services/param/adapter",
92      "//base/startup/init/services/param/base",
93      "//base/startup/init/services/param/linux",
94      "//base/startup/init/services/param/include",
95      "//base/startup/init/services/param/watcher/agent",
96      "//base/startup/init/services/param/watcher/include",
97      "//base/startup/init/services/param/watcher/proxy",
98      "//base/startup/init/services/modules",
99      "//base/startup/init/services/modules/init_hook",
100      "//base/startup/init/services/modules/selinux",
101      "//base/startup/init/test/unittest",
102      "//base/startup/init/test/unittest/param",
103      "//base/startup/init/interfaces/innerkits/include",
104      "//base/startup/init/interfaces/innerkits/include/syspara",
105      "//base/startup/init/interfaces/innerkits/init_module_engine/include",
106      "//base/startup/init/interfaces/innerkits/syspara",
107      "//third_party/cJSON",
108      "//third_party/bounds_checking_function/include",
109      "//base/hiviewdfx/hilog_lite/interfaces/native/kits",
110      "//base/startup/init/interfaces/innerkits/fd_holder",
111      "//base/startup/init/interfaces/hals",
112    ]
113
114    sources = sysparam_source
115    sources += param_common_sources
116    sources += base_sources
117    deps = [ "//third_party/bounds_checking_function:libsec_static" ]
118
119    if (ohos_kernel_type == "liteos_a") {
120      defines += [ "__LITEOS_A__" ]
121      include_dirs += [
122        "//kernel/liteos_a/syscall",
123        "//base/startup/init/interfaces/kits/syscap",
124        "//base/startup/init/initsync/include",
125      ]
126      sources += init_common_sources
127      sources += [
128        "//base/startup/init/services/param/adapter/param_persistadp.c",
129        "//base/startup/init/services/param/liteos/param_client.c",
130        "//base/startup/init/services/param/liteos/param_litedac.c",
131        "//base/startup/init/services/param/liteos/param_osadp.c",
132        "//base/startup/init/services/param/liteos/param_service.c",
133      ]
134
135      sources += [
136        "../param/client_unittest.cpp",
137        "../param/param_stub.cpp",
138        "../param/param_unittest.cpp",
139        "../syspara/syspara_unittest.cpp",
140        "cmd_func_test.cpp",
141      ]
142
143      # add cfg.h
144      if (enable_ohos_startup_init_feature_begetctl_liteos) {
145        PRODUCT_HAL_SYSPARAM_PATH =
146            rebase_path("//${ohos_product_adapter_dir}/utils/sys_param")
147        cmd = "if [ -f ${PRODUCT_HAL_SYSPARAM_PATH}/BUILD.gn ]; then echo true; else echo false; fi"
148        PRODUCT_HAL_SYSPARAM_EXISTS =
149            exec_script("//build/lite/run_shell_cmd.py", [ cmd ], "value")
150        if (PRODUCT_HAL_SYSPARAM_EXISTS) {
151          deps += [ "$ohos_product_adapter_dir/utils/sys_param:hal_sysparam" ]
152        }
153        deps += [
154          "//base/startup/init/interfaces/hals/utils/sys_param:hal_sys_param",
155        ]
156        deps +=
157            [ "//base/startup/init/services/param/liteos:lite_ohos_param_to" ]
158        include_dirs += [ "$root_out_dir/gen/init" ]
159        defines += [ "PARAM_LOAD_CFG_FROM_CODE" ]
160      }
161      deps += [
162        "//base/hiviewdfx/hilog_lite/frameworks/featured:hilog_shared",
163        "//base/startup/init/initsync:initsync",
164        "//base/startup/init/services/loopevent:loopevent",
165        "//build/lite/config/component/cJSON:cjson_static",
166        "//third_party/mbedtls:mbedtls",
167      ]
168    }
169
170    if (ohos_kernel_type == "liteos_m") {
171      defines += [ "__LITEOS_M__" ]
172      sources += [
173        "//base/startup/init/services/param/liteos/param_client.c",
174        "//base/startup/init/services/param/liteos/param_hal.c",
175        "//base/startup/init/services/param/liteos/param_litedac.c",
176        "//base/startup/init/services/param/liteos/param_osadp.c",
177        "//base/startup/init/services/param/liteos/param_service.c",
178      ]
179      if (enable_ohos_startup_init_lite_use_posix_file_api) {
180        defines += [ "PARAM_SUPPORT_POSIX" ]
181      }
182      sources += [
183        "../param/dac_unittest.cpp",
184        "../param/param_stub.cpp",
185        "../param/param_unittest.cpp",
186        "../syspara/syspara_unittest.cpp",
187      ]
188
189      # add cfg.h
190      if (enable_ohos_startup_init_feature_begetctl_liteos) {
191        deps +=
192            [ "//base/startup/init/services/param/liteos:lite_ohos_param_to" ]
193        include_dirs += [ "$root_out_dir/gen/init" ]
194        defines += [ "PARAM_LOAD_CFG_FROM_CODE" ]
195      }
196      deps += [
197        "//base/hiviewdfx/hilog_lite/frameworks/featured:hilog_static",
198        "//third_party/mbedtls:mbedtls",
199      ]
200    }
201    if (ohos_kernel_type == "linux") {
202      defines += [ "__LINUX__" ]
203
204      sources += init_common_sources
205      sources += [
206        "//base/startup/init/services/param/adapter/param_dac.c",
207        "//base/startup/init/services/param/adapter/param_persistadp.c",
208        "//base/startup/init/services/param/linux/param_message.c",
209        "//base/startup/init/services/param/linux/param_msgadp.c",
210        "//base/startup/init/services/param/linux/param_osadp.c",
211        "//base/startup/init/services/param/linux/param_request.c",
212        "//base/startup/init/services/param/linux/param_service.c",
213        "//base/startup/init/services/param/trigger/trigger_checker.c",
214        "//base/startup/init/services/param/trigger/trigger_manager.c",
215        "//base/startup/init/services/param/trigger/trigger_processor.c",
216      ]
217      sources += [
218        "../param/client_unittest.cpp",
219        "../param/dac_unittest.cpp",
220        "../param/param_stub.cpp",
221        "../param/param_unittest.cpp",
222        "../param/paramservice_unittest.cpp",
223        "cmd_func_test.cpp",
224      ]
225      if (enable_ohos_startup_init_feature_begetctl_liteos) {
226        sources += [ "../syspara/syspara_unittest.cpp" ]
227      }
228      deps += [
229        "//base/hiviewdfx/hilog_lite/frameworks/featured:hilog_shared",
230        "//base/startup/init/services/loopevent:loopevent",
231        "//build/lite/config/component/cJSON:cjson_static",
232        "//third_party/mbedtls:mbedtls",
233      ]
234    }
235  }
236}
237