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") 14 15if (defined(ohos_lite)) { 16 if (ohos_kernel_type == "linux") { 17 service_ueventd_deps = [ 18 "//base/startup/init/interfaces/innerkits/socket:libsocket", 19 "//base/startup/init/services/log:init_log", 20 "//base/startup/init/services/param/base:param_base", 21 "//base/startup/init/services/utils:libinit_utils", 22 ] 23 24 executable("ueventd_linux") { 25 sources = [ 26 "//base/startup/init/services/utils/init_utils.c", 27 "//base/startup/init/ueventd/lite/ueventd_parameter.c", 28 "//base/startup/init/ueventd/ueventd.c", 29 "//base/startup/init/ueventd/ueventd_device_handler.c", 30 "//base/startup/init/ueventd/ueventd_firmware_handler.c", 31 "//base/startup/init/ueventd/ueventd_main.c", 32 "//base/startup/init/ueventd/ueventd_read_cfg.c", 33 "//base/startup/init/ueventd/ueventd_socket.c", 34 ] 35 defines = [ "__MUSL__" ] 36 defines += [ "_GNU_SOURCE" ] 37 38 include_dirs = [ 39 "//base/startup/init/services/log", 40 "//base/startup/init/interfaces/innerkits/include", 41 "//base/startup/init/interfaces/innerkits/include/param", 42 "//base/startup/init/services/utils", 43 "//base/startup/init/ueventd/include", 44 ] 45 46 deps = service_ueventd_deps 47 deps += [ "//base/hiviewdfx/hilog_lite/frameworks/featured:hilog_shared" ] 48 deps += [ "//base/startup/init/interfaces/innerkits:libbegetutil" ] 49 external_deps = [ "bounds_checking_function:libsec_static" ] 50 } 51 copy("ueventd.config") { 52 sources = [ "etc/ueventd_l1.config" ] 53 outputs = [ "$root_out_dir/etc/ueventd.config" ] 54 } 55 } 56} else { 57 import("//build/ohos.gni") 58 service_ueventd_sources = [ 59 "//base/startup/init/ueventd/ueventd.c", 60 "//base/startup/init/ueventd/ueventd_device_handler.c", 61 "//base/startup/init/ueventd/ueventd_firmware_handler.c", 62 "//base/startup/init/ueventd/ueventd_read_cfg.c", 63 "//base/startup/init/ueventd/ueventd_socket.c", 64 ] 65 66 service_ueventd_include = [ 67 "//base/startup/init/services/log", 68 "//base/startup/init/interfaces/innerkits/include", 69 "//base/startup/init/services/utils", 70 "//base/startup/init/ueventd/include", 71 ] 72 73 service_ueventd_deps = [ 74 "//base/startup/init/interfaces/innerkits/socket:libsocket", 75 "//base/startup/init/services/log:init_log", 76 "//base/startup/init/services/utils:libinit_utils", 77 ] 78 79 service_ueventd_ramdisk_deps = [ 80 "//base/startup/init/interfaces/innerkits/socket:libsocket", 81 "//base/startup/init/services/utils:libinit_utils", 82 ] 83 84 # 85 # exported include directories 86 # 87 config("libueventd_exported_config") { 88 visibility = [ ":*" ] 89 include_dirs = [ "./include" ] 90 } 91 ohos_static_library("libueventd_ramdisk_static") { 92 sources = service_ueventd_sources 93 include_dirs = service_ueventd_include 94 deps = service_ueventd_deps 95 defines = [ "__RAMDISK__" ] 96 external_deps = [] 97 cflags = [] 98 if (build_selinux) { 99 external_deps += [ "selinux_adapter:librestorecon" ] 100 cflags += [ "-DWITH_SELINUX" ] 101 } 102 external_deps += [ "selinux:libselinux" ] 103 external_deps += [ "bounds_checking_function:libsec_static" ] 104 public_configs = [ ":libueventd_exported_config" ] 105 part_name = "init" 106 subsystem_name = "startup" 107 } 108 109 ohos_static_library("libueventd_ramdisk_static_real") { 110 sources = service_ueventd_sources 111 include_dirs = service_ueventd_include 112 deps = service_ueventd_ramdisk_deps 113 defines = [ "__RAMDISK__" ] 114 external_deps = [] 115 cflags = [] 116 if (build_selinux) { 117 external_deps += [ "selinux_adapter:librestorecon_static" ] 118 cflags += [ "-DWITH_SELINUX" ] 119 } 120 external_deps += [ "selinux:libselinux_static" ] 121 external_deps += [ "bounds_checking_function:libsec_static" ] 122 public_configs = [ ":libueventd_exported_config" ] 123 part_name = "init" 124 subsystem_name = "startup" 125 } 126 127 ohos_executable("ueventd") { 128 sources = service_ueventd_sources 129 sources += [ 130 "//base/startup/init/ueventd/standard/ueventd_parameter.c", 131 "//base/startup/init/ueventd/ueventd_main.c", 132 ] 133 include_dirs = service_ueventd_include 134 include_dirs += [ 135 "//base/startup/init/interfaces/innerkits/include/param", 136 "//base/startup/init/interfaces/innerkits/include", 137 ] 138 deps = service_ueventd_deps 139 deps += [ "//base/startup/init/services/param/linux:param_client" ] 140 external_deps = [ "selinux:libselinux" ] 141 external_deps += [ "bounds_checking_function:libsec_static" ] 142 cflags = [] 143 deps += [ "//base/startup/init/services/param/base:param_base" ] 144 deps += [ "//base/startup/init/interfaces/innerkits:libbegetutil" ] 145 if (build_selinux) { 146 external_deps += [ "selinux_adapter:librestorecon" ] 147 cflags += [ "-DWITH_SELINUX" ] 148 } 149 150 install_images = [ 151 "system", 152 "updater", 153 ] 154 install_enable = true 155 part_name = "init" 156 subsystem_name = "startup" 157 } 158 159 ohos_prebuilt_etc("ueventd.config") { 160 source = "//base/startup/init/ueventd/etc/ueventd.config" 161 part_name = "init" 162 subsystem_name = "startup" 163 install_images = [ 164 "system", 165 "updater", 166 ] 167 } 168} 169 170group("startup_ueventd") { 171 if (defined(ohos_lite)) { 172 if (ohos_kernel_type == "linux") { 173 deps = [ 174 ":ueventd.config", 175 ":ueventd_linux", 176 ] 177 } else { 178 deps = [] 179 } 180 } else { 181 deps = [ 182 "//base/startup/init/ueventd:libueventd_ramdisk_static", 183 "//base/startup/init/ueventd:ueventd", 184 "//base/startup/init/ueventd:ueventd.config", 185 ] 186 } 187} 188