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