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/services/include", 42 "//base/startup/init/services/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/services/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 "//third_party/bounds_checking_function:libsec_static", 78 ] 79 80 # 81 # exported include directories 82 # 83 config("libueventd_exported_config") { 84 visibility = [ ":*" ] 85 include_dirs = [ "./include" ] 86 } 87 ohos_static_library("libueventd_ramdisk_static") { 88 sources = service_ueventd_sources 89 include_dirs = service_ueventd_include 90 deps = service_ueventd_deps 91 defines = [ "__RAMDISK__" ] 92 cflags = [] 93 if (build_selinux) { 94 external_deps = [ "selinux:librestorecon" ] 95 cflags += [ "-DWITH_SELINUX" ] 96 } 97 98 public_configs = [ ":libueventd_exported_config" ] 99 part_name = "init" 100 subsystem_name = "startup" 101 } 102 103 ohos_executable("ueventd") { 104 sources = service_ueventd_sources 105 sources += [ 106 "//base/startup/init/ueventd/standard/ueventd_parameter.c", 107 "//base/startup/init/ueventd/ueventd_main.c", 108 ] 109 include_dirs = service_ueventd_include 110 include_dirs += [ 111 "//base/startup/init/services/include/param", 112 "//base/startup/init/interfaces/innerkits/include", 113 ] 114 deps = service_ueventd_deps 115 deps += [ "//base/startup/init/services/param/linux:param_client" ] 116 cflags = [] 117 deps += [ "//base/startup/init/services/param/base:param_base" ] 118 if (build_selinux) { 119 external_deps = [ "selinux:librestorecon" ] 120 cflags += [ "-DWITH_SELINUX" ] 121 } 122 123 install_images = [ 124 "system", 125 "updater", 126 ] 127 install_enable = true 128 part_name = "init" 129 subsystem_name = "startup" 130 } 131 132 ohos_prebuilt_etc("ueventd.config") { 133 source = "//base/startup/init/ueventd/etc/ueventd.config" 134 part_name = "init" 135 subsystem_name = "startup" 136 install_images = [ 137 "system", 138 "updater", 139 ] 140 } 141} 142 143group("startup_ueventd") { 144 if (defined(ohos_lite)) { 145 if (ohos_kernel_type == "linux") { 146 deps = [ 147 ":ueventd.config", 148 ":ueventd_linux", 149 ] 150 } else { 151 deps = [] 152 } 153 } else { 154 deps = [ 155 "//base/startup/init/ueventd:libueventd_ramdisk_static", 156 "//base/startup/init/ueventd:ueventd", 157 "//base/startup/init/ueventd:ueventd.config", 158 ] 159 } 160} 161