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