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