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