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