1# Copyright (c) 2021-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. 13import("//base/startup/init/begetd.gni") 14if (!defined(ohos_lite) || init_feature_begetctl_liteos) { 15 syspara_sources = [ 16 "syscap/init_syscap.c", 17 "syspara/param_comm.c", 18 "syspara/parameter.c", 19 "syspara/sysversion.c", 20 ] 21} 22 23config("exported_header_files") { 24 visibility = [ ":*" ] 25 include_dirs = [ 26 "//base/startup/init/interfaces/innerkits/include", 27 "//base/startup/init/interfaces/innerkits/include/syspara", 28 "//base/startup/init/interfaces/innerkits/include/token", 29 "//base/startup/init/interfaces/innerkits/include/param", 30 ] 31} 32 33include_common = [ 34 "./include", 35 "//base/startup/init/interfaces/innerkits/include", 36 "//base/startup/init/interfaces/innerkits/include/param", 37 "//base/startup/init/interfaces/innerkits/fd_holder", 38 "//base/startup/init/interfaces/innerkits/include/syspara", 39 "//base/startup/init/interfaces/hals", 40 "//base/startup/init/interfaces/innerkits/syspara", 41 "//base/startup/init/services/param/include", 42] 43 44if (defined(ohos_lite)) { 45 import("//build/lite/config/component/lite_component.gni") 46 import("//build/lite/ndk/ndk.gni") 47 48 if (ohos_kernel_type == "liteos_a" || ohos_kernel_type == "linux") { 49 shared_library("libbegetutil") { 50 cflags = [ "-fPIC" ] 51 defines = [ 52 "_GNU_SOURCE", 53 "OHOS_LITE", 54 ] 55 sources = [] 56 include_dirs = include_common 57 include_dirs += [ 58 "//third_party/bounds_checking_function/include", 59 "//base/hiviewdfx/hilog_lite/interfaces/native/kits", 60 ] 61 public_configs = [ ":exported_header_files" ] 62 deps = [ 63 "//base/hiviewdfx/hilog_lite/frameworks/featured:hilog_shared", 64 "//base/startup/init/services/modules/init_hook:inithook", 65 "//third_party/bounds_checking_function:libsec_shared", 66 ] 67 deps += [ 68 "//base/startup/init/services/log:init_log", 69 "//base/startup/init/services/modules/udid:libudidcomm", 70 "//base/startup/init/services/utils:libinit_utils", 71 ] 72 if (init_feature_begetctl_liteos) { 73 sources += syspara_sources 74 defines += [ "LITEOS_SUPPORT" ] 75 deps += [ "$ohos_product_adapter_dir/utils/sys_param:hal_sysparam" ] 76 } else { 77 sources += [ "syscap/init_syscap.c" ] 78 } 79 if (ohos_kernel_type == "liteos_a") { 80 defines += [ "__LITEOS_A__" ] 81 deps += 82 [ "//base/startup/init/services/param/liteos:param_client_lite" ] 83 } else if (ohos_kernel_type == "linux") { 84 sources += [ "socket/init_socket.c" ] 85 defines += [ "__LINUX__" ] 86 deps += [ 87 "//base/startup/init/services/loopevent:loopevent", 88 "//base/startup/init/services/param/base:param_base", 89 "//base/startup/init/services/param/linux:param_client", 90 ] 91 } 92 } 93 94 static_library("libbegetutil_static") { 95 } 96 } 97 if (ohos_kernel_type == "liteos_m") { 98 static_library("libbegetutil") { 99 public_configs = [ ":exported_header_files" ] 100 defines = [ 101 "_GNU_SOURCE", 102 "OHOS_LITE", 103 "__LITEOS_M__", 104 ] 105 106 include_dirs = include_common 107 include_dirs += [ "//base/hiviewdfx/hilog_lite/interfaces/native/kits" ] 108 deps = [ 109 "//base/startup/init/services/modules/init_hook:inithook", 110 "//base/startup/init/services/modules/udid:libudidcomm", 111 "//third_party/bounds_checking_function:libsec_static", 112 ] 113 if (init_lite_no_log) { 114 defines += [ "INIT_NO_LOG" ] 115 } else { 116 deps += 117 [ "//base/hiviewdfx/hilog_lite/frameworks/featured:hilog_static" ] 118 } 119 120 sources = [] 121 if (init_feature_begetctl_liteos) { 122 PRODUCT_HAL_SYSPARAM_PATH = 123 rebase_path("${ohos_product_adapter_dir}/utils/sys_param") 124 cmd = "if [ -f ${PRODUCT_HAL_SYSPARAM_PATH}/BUILD.gn ]; then echo true; else echo false; fi" 125 PRODUCT_HAL_SYSPARAM_EXISTS = 126 exec_script("//build/lite/run_shell_cmd.py", [ cmd ], "value") 127 if (PRODUCT_HAL_SYSPARAM_EXISTS) { 128 deps += [ "$ohos_product_adapter_dir/utils/sys_param:hal_sysparam" ] 129 } 130 deps += [ 131 "//base/startup/init/interfaces/hals/utils/sys_param:hal_sys_param", 132 ] 133 defines += [ "LITEOS_SUPPORT" ] 134 sources += syspara_sources 135 } else { 136 sources += [ "syscap/init_syscap.c" ] 137 } 138 139 if (init_feature_begetctl_liteos) { 140 deps += [ 141 "//base/startup/init/services/param/liteos:param_client_lite", 142 "//base/startup/init/services/utils:libinit_utils", 143 ] 144 if (!init_lite_no_log) { 145 deps += [ "//base/startup/init/services/log:init_log" ] 146 } 147 } 148 } 149 150 static_library("libbegetutil_static") { 151 } 152 } 153 154 lite_component("parameter") { 155 features = [ ":libbegetutil" ] 156 } 157 158 ndk_lib("parameter_notes") { 159 if (ohos_kernel_type != "liteos_m") { 160 lib_extension = ".so" 161 } 162 deps = [ ":libbegetutil" ] 163 head_files = [ "//base/startup/init/interfaces/innerkits/include/syspara" ] 164 } 165 166 group("libbeget_proxy") { 167 } 168} else { 169 import("//build/ohos.gni") 170 modulemgr_sources = [ 171 "hookmgr/hookmgr.c", 172 "modulemgr/modulemgr.c", 173 ] 174 175 ohos_shared_library("libbegetutil") { 176 sources = [ 177 "fd_holder/fd_holder.c", 178 "reboot/init_reboot_innerkits.c", 179 "service_control/service_control.c", 180 ] 181 sources += syspara_sources 182 sources += [ "syspara/param_wrapper.cpp" ] 183 sources += modulemgr_sources 184 185 innerapi_tags = [ 186 "chipsetsdk", 187 "platformsdk", 188 "sasdk", 189 ] 190 191 version_script = "libbegetutil.versionscript" 192 193 defines = [ 194 "INIT_AGENT", 195 "_GNU_SOURCE", 196 ] 197 if (target_cpu == "arm64" || target_cpu == "x86_64" || 198 target_cpu == "riscv64") { 199 defines += [ "SUPPORT_64BIT" ] 200 } 201 202 include_dirs = include_common 203 deps = [ 204 "//base/startup/init/interfaces/innerkits/control_fd:libcontrolfd", 205 "//base/startup/init/interfaces/innerkits/fd_holder:fdholder", 206 "//base/startup/init/interfaces/innerkits/file:libfile", 207 "//base/startup/init/interfaces/innerkits/socket:libsocket", 208 "//base/startup/init/services/log:agent_log", 209 "//base/startup/init/services/loopevent:loopevent", 210 "//base/startup/init/services/modules/udid:libudidcomm", 211 "//base/startup/init/services/param/linux:param_client", 212 "//base/startup/init/services/utils:libinit_utils", 213 ] 214 deps += [ "//base/startup/init/services/param/base:param_base" ] 215 if (init_begetutil_extra_modules != "") { 216 deps += [ init_begetutil_extra_modules ] 217 } 218 219 external_deps = [ 220 "bounds_checking_function:libsec_shared", 221 "c_utils:utils", 222 "config_policy:configpolicy_util_for_init_static", 223 "hilog:libhilog_base", 224 ] 225 public_configs = [ ":exported_header_files" ] 226 part_name = "init" 227 subsystem_name = "startup" 228 install_images = [ 229 "system", 230 "updater", 231 ] 232 } 233 234 # watcher lib must separate compilation avoid interdependence. 235 ohos_shared_library("libbeget_proxy") { 236 defines = [ 237 "INIT_AGENT", 238 "_GNU_SOURCE", 239 ] 240 sources = [ 241 "//base/startup/init/device_info/device_info.cpp", 242 "service_watcher/service_watcher.c", 243 ] 244 245 version_script = "libbeget_proxy.versionscript" 246 247 include_dirs = include_common 248 deps = [ 249 ":libbegetutil", 250 "//base/startup/init/services/utils:libinit_utils", 251 ] 252 253 if (enable_ohos_startup_init_feature_watcher) { 254 sources += [ 255 "//base/startup/init/services/param/watcher/agent/watcher.cpp", 256 "//base/startup/init/services/param/watcher/agent/watcher_manager_kits.cpp", 257 "//base/startup/init/services/param/watcher/agent/watcher_manager_proxy.cpp", 258 "//base/startup/init/services/param/watcher/agent/watcher_stub.cpp", 259 ] 260 deps += [ "//base/startup/init/services/param/linux:param_client" ] 261 include_dirs += [ 262 "//base/startup/init/services/param/watcher/include", 263 "//base/startup/init/services/log", 264 "//base/startup/init/interfaces/innerkits/include/param", 265 ] 266 } else { 267 defines += [ "NO_PARAM_WATCHER" ] 268 } 269 270 if (enable_ohos_startup_init_feature_deviceinfo) { 271 sources += [ 272 "//base/startup/init/device_info/device_info_kits.cpp", 273 "//base/startup/init/device_info/device_info_load.cpp", 274 "//base/startup/init/device_info/device_info_proxy.cpp", 275 ] 276 defines += [ "PARAM_FEATURE_DEVICEINFO" ] 277 } else { 278 sources += 279 [ "//base/startup/init/interfaces/innerkits/syspara/param_comm.c" ] 280 } 281 282 external_deps = [ 283 "bounds_checking_function:libsec_shared", 284 "c_utils:utils", 285 "hilog:libhilog_base", 286 "ipc:ipc_single", 287 "samgr:samgr_proxy", 288 ] 289 public_configs = [ ":exported_header_files" ] 290 innerapi_tags = [ 291 "chipsetsdk", 292 "platformsdk", 293 ] 294 part_name = "init" 295 subsystem_name = "startup" 296 install_images = [ "system" ] 297 } 298 299 ohos_static_library("libbegetutil_static") { 300 sources = syspara_sources 301 sources += [ 302 "reboot/init_reboot_innerkits.c", 303 "syspara/param_wrapper.cpp", 304 ] 305 306 defines = [ 307 "INIT_AGENT", 308 "_GNU_SOURCE", 309 ] 310 if (target_cpu == "arm64" || target_cpu == "x86_64" || 311 target_cpu == "riscv64") { 312 defines += [ "SUPPORT_64BIT" ] 313 } 314 315 include_dirs = include_common 316 deps = [ 317 "//base/startup/init/services/log:agent_log", 318 "//base/startup/init/services/loopevent:loopevent", 319 "//base/startup/init/services/modules/udid:libudidcomm_static", 320 "//base/startup/init/services/param/linux:param_client", 321 "//base/startup/init/services/utils:libinit_utils", 322 ] 323 deps += [ "//base/startup/init/services/param/base:param_base" ] 324 external_deps = [ 325 "bounds_checking_function:libsec_static", 326 "c_utils:utilsbase", 327 "hilog:libhilog_base", 328 ] 329 public_configs = [ ":exported_header_files" ] 330 part_name = "init" 331 subsystem_name = "startup" 332 } 333} 334 335group("innergroup") { 336 deps = [ ":libbegetutil" ] 337 if (build_seccomp) { 338 deps += [ "seccomp:seccomp" ] 339 } 340 if (!defined(ohos_lite)) { 341 deps += [ 342 ":libbeget_proxy", 343 "file:libfile", 344 "init_module_engine:modulegroup", 345 "socket:libsocket", 346 ] 347 } else { 348 } 349} 350