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