1d9f0492fSopenharmony_ci# Copyright (c) 2021-2022 Huawei Device Co., Ltd. 2d9f0492fSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 3d9f0492fSopenharmony_ci# you may not use this file except in compliance with the License. 4d9f0492fSopenharmony_ci# You may obtain a copy of the License at 5d9f0492fSopenharmony_ci# 6d9f0492fSopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 7d9f0492fSopenharmony_ci# 8d9f0492fSopenharmony_ci# Unless required by applicable law or agreed to in writing, software 9d9f0492fSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 10d9f0492fSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11d9f0492fSopenharmony_ci# See the License for the specific language governing permissions and 12d9f0492fSopenharmony_ci# limitations under the License. 13d9f0492fSopenharmony_ciimport("//base/startup/init/begetd.gni") 14d9f0492fSopenharmony_ci 15d9f0492fSopenharmony_ciif (defined(ohos_lite)) { 16d9f0492fSopenharmony_ci if (ohos_kernel_type == "linux") { 17d9f0492fSopenharmony_ci service_ueventd_deps = [ 18d9f0492fSopenharmony_ci "//base/startup/init/interfaces/innerkits/socket:libsocket", 19d9f0492fSopenharmony_ci "//base/startup/init/services/log:init_log", 20d9f0492fSopenharmony_ci "//base/startup/init/services/param/base:param_base", 21d9f0492fSopenharmony_ci "//base/startup/init/services/utils:libinit_utils", 22d9f0492fSopenharmony_ci ] 23d9f0492fSopenharmony_ci 24d9f0492fSopenharmony_ci executable("ueventd_linux") { 25d9f0492fSopenharmony_ci sources = [ 26d9f0492fSopenharmony_ci "//base/startup/init/services/utils/init_utils.c", 27d9f0492fSopenharmony_ci "//base/startup/init/ueventd/lite/ueventd_parameter.c", 28d9f0492fSopenharmony_ci "//base/startup/init/ueventd/ueventd.c", 29d9f0492fSopenharmony_ci "//base/startup/init/ueventd/ueventd_device_handler.c", 30d9f0492fSopenharmony_ci "//base/startup/init/ueventd/ueventd_firmware_handler.c", 31d9f0492fSopenharmony_ci "//base/startup/init/ueventd/ueventd_main.c", 32d9f0492fSopenharmony_ci "//base/startup/init/ueventd/ueventd_read_cfg.c", 33d9f0492fSopenharmony_ci "//base/startup/init/ueventd/ueventd_socket.c", 34d9f0492fSopenharmony_ci ] 35d9f0492fSopenharmony_ci defines = [ "__MUSL__" ] 36d9f0492fSopenharmony_ci defines += [ "_GNU_SOURCE" ] 37d9f0492fSopenharmony_ci 38d9f0492fSopenharmony_ci include_dirs = [ 39d9f0492fSopenharmony_ci "//base/startup/init/services/log", 40d9f0492fSopenharmony_ci "//base/startup/init/interfaces/innerkits/include", 41d9f0492fSopenharmony_ci "//base/startup/init/interfaces/innerkits/include/param", 42d9f0492fSopenharmony_ci "//base/startup/init/services/utils", 43d9f0492fSopenharmony_ci "//base/startup/init/ueventd/include", 44d9f0492fSopenharmony_ci ] 45d9f0492fSopenharmony_ci 46d9f0492fSopenharmony_ci deps = service_ueventd_deps 47d9f0492fSopenharmony_ci deps += [ "//base/hiviewdfx/hilog_lite/frameworks/featured:hilog_shared" ] 48d9f0492fSopenharmony_ci deps += [ "//base/startup/init/interfaces/innerkits:libbegetutil" ] 49d9f0492fSopenharmony_ci external_deps = [ "bounds_checking_function:libsec_static" ] 50d9f0492fSopenharmony_ci } 51d9f0492fSopenharmony_ci copy("ueventd.config") { 52d9f0492fSopenharmony_ci sources = [ "etc/ueventd_l1.config" ] 53d9f0492fSopenharmony_ci outputs = [ "$root_out_dir/etc/ueventd.config" ] 54d9f0492fSopenharmony_ci } 55d9f0492fSopenharmony_ci } 56d9f0492fSopenharmony_ci} else { 57d9f0492fSopenharmony_ci import("//build/ohos.gni") 58d9f0492fSopenharmony_ci service_ueventd_sources = [ 59d9f0492fSopenharmony_ci "//base/startup/init/ueventd/ueventd.c", 60d9f0492fSopenharmony_ci "//base/startup/init/ueventd/ueventd_device_handler.c", 61d9f0492fSopenharmony_ci "//base/startup/init/ueventd/ueventd_firmware_handler.c", 62d9f0492fSopenharmony_ci "//base/startup/init/ueventd/ueventd_read_cfg.c", 63d9f0492fSopenharmony_ci "//base/startup/init/ueventd/ueventd_socket.c", 64d9f0492fSopenharmony_ci ] 65d9f0492fSopenharmony_ci 66d9f0492fSopenharmony_ci service_ueventd_include = [ 67d9f0492fSopenharmony_ci "//base/startup/init/services/log", 68d9f0492fSopenharmony_ci "//base/startup/init/interfaces/innerkits/include", 69d9f0492fSopenharmony_ci "//base/startup/init/services/utils", 70d9f0492fSopenharmony_ci "//base/startup/init/ueventd/include", 71d9f0492fSopenharmony_ci ] 72d9f0492fSopenharmony_ci 73d9f0492fSopenharmony_ci service_ueventd_deps = [ 74d9f0492fSopenharmony_ci "//base/startup/init/interfaces/innerkits/socket:libsocket", 75d9f0492fSopenharmony_ci "//base/startup/init/services/log:init_log", 76d9f0492fSopenharmony_ci "//base/startup/init/services/utils:libinit_utils", 77d9f0492fSopenharmony_ci ] 78d9f0492fSopenharmony_ci 79d9f0492fSopenharmony_ci service_ueventd_ramdisk_deps = [ 80d9f0492fSopenharmony_ci "//base/startup/init/interfaces/innerkits/socket:libsocket", 81d9f0492fSopenharmony_ci "//base/startup/init/services/utils:libinit_utils", 82d9f0492fSopenharmony_ci ] 83d9f0492fSopenharmony_ci 84d9f0492fSopenharmony_ci # 85d9f0492fSopenharmony_ci # exported include directories 86d9f0492fSopenharmony_ci # 87d9f0492fSopenharmony_ci config("libueventd_exported_config") { 88d9f0492fSopenharmony_ci visibility = [ ":*" ] 89d9f0492fSopenharmony_ci include_dirs = [ "./include" ] 90d9f0492fSopenharmony_ci } 91d9f0492fSopenharmony_ci ohos_static_library("libueventd_ramdisk_static") { 92d9f0492fSopenharmony_ci sources = service_ueventd_sources 93d9f0492fSopenharmony_ci include_dirs = service_ueventd_include 94d9f0492fSopenharmony_ci deps = service_ueventd_deps 95d9f0492fSopenharmony_ci defines = [ "__RAMDISK__" ] 96d9f0492fSopenharmony_ci external_deps = [] 97d9f0492fSopenharmony_ci cflags = [] 98d9f0492fSopenharmony_ci if (build_selinux) { 99d9f0492fSopenharmony_ci external_deps += [ "selinux_adapter:librestorecon" ] 100d9f0492fSopenharmony_ci cflags += [ "-DWITH_SELINUX" ] 101d9f0492fSopenharmony_ci } 102d9f0492fSopenharmony_ci external_deps += [ "selinux:libselinux" ] 103d9f0492fSopenharmony_ci external_deps += [ "bounds_checking_function:libsec_static" ] 104d9f0492fSopenharmony_ci public_configs = [ ":libueventd_exported_config" ] 105d9f0492fSopenharmony_ci part_name = "init" 106d9f0492fSopenharmony_ci subsystem_name = "startup" 107d9f0492fSopenharmony_ci } 108d9f0492fSopenharmony_ci 109d9f0492fSopenharmony_ci ohos_static_library("libueventd_ramdisk_static_real") { 110d9f0492fSopenharmony_ci sources = service_ueventd_sources 111d9f0492fSopenharmony_ci include_dirs = service_ueventd_include 112d9f0492fSopenharmony_ci deps = service_ueventd_ramdisk_deps 113d9f0492fSopenharmony_ci defines = [ "__RAMDISK__" ] 114d9f0492fSopenharmony_ci external_deps = [] 115d9f0492fSopenharmony_ci cflags = [] 116d9f0492fSopenharmony_ci if (build_selinux) { 117d9f0492fSopenharmony_ci external_deps += [ "selinux_adapter:librestorecon_static" ] 118d9f0492fSopenharmony_ci cflags += [ "-DWITH_SELINUX" ] 119d9f0492fSopenharmony_ci } 120d9f0492fSopenharmony_ci external_deps += [ "selinux:libselinux_static" ] 121d9f0492fSopenharmony_ci external_deps += [ "bounds_checking_function:libsec_static" ] 122d9f0492fSopenharmony_ci public_configs = [ ":libueventd_exported_config" ] 123d9f0492fSopenharmony_ci part_name = "init" 124d9f0492fSopenharmony_ci subsystem_name = "startup" 125d9f0492fSopenharmony_ci } 126d9f0492fSopenharmony_ci 127d9f0492fSopenharmony_ci ohos_executable("ueventd") { 128d9f0492fSopenharmony_ci sources = service_ueventd_sources 129d9f0492fSopenharmony_ci sources += [ 130d9f0492fSopenharmony_ci "//base/startup/init/ueventd/standard/ueventd_parameter.c", 131d9f0492fSopenharmony_ci "//base/startup/init/ueventd/ueventd_main.c", 132d9f0492fSopenharmony_ci ] 133d9f0492fSopenharmony_ci include_dirs = service_ueventd_include 134d9f0492fSopenharmony_ci include_dirs += [ 135d9f0492fSopenharmony_ci "//base/startup/init/interfaces/innerkits/include/param", 136d9f0492fSopenharmony_ci "//base/startup/init/interfaces/innerkits/include", 137d9f0492fSopenharmony_ci ] 138d9f0492fSopenharmony_ci deps = service_ueventd_deps 139d9f0492fSopenharmony_ci deps += [ "//base/startup/init/services/param/linux:param_client" ] 140d9f0492fSopenharmony_ci external_deps = [ "selinux:libselinux" ] 141d9f0492fSopenharmony_ci external_deps += [ "bounds_checking_function:libsec_static" ] 142d9f0492fSopenharmony_ci cflags = [] 143d9f0492fSopenharmony_ci deps += [ "//base/startup/init/services/param/base:param_base" ] 144d9f0492fSopenharmony_ci deps += [ "//base/startup/init/interfaces/innerkits:libbegetutil" ] 145d9f0492fSopenharmony_ci if (build_selinux) { 146d9f0492fSopenharmony_ci external_deps += [ "selinux_adapter:librestorecon" ] 147d9f0492fSopenharmony_ci cflags += [ "-DWITH_SELINUX" ] 148d9f0492fSopenharmony_ci } 149d9f0492fSopenharmony_ci 150d9f0492fSopenharmony_ci install_images = [ 151d9f0492fSopenharmony_ci "system", 152d9f0492fSopenharmony_ci "updater", 153d9f0492fSopenharmony_ci ] 154d9f0492fSopenharmony_ci install_enable = true 155d9f0492fSopenharmony_ci part_name = "init" 156d9f0492fSopenharmony_ci subsystem_name = "startup" 157d9f0492fSopenharmony_ci } 158d9f0492fSopenharmony_ci 159d9f0492fSopenharmony_ci ohos_prebuilt_etc("ueventd.config") { 160d9f0492fSopenharmony_ci source = "//base/startup/init/ueventd/etc/ueventd.config" 161d9f0492fSopenharmony_ci part_name = "init" 162d9f0492fSopenharmony_ci subsystem_name = "startup" 163d9f0492fSopenharmony_ci install_images = [ 164d9f0492fSopenharmony_ci "system", 165d9f0492fSopenharmony_ci "updater", 166d9f0492fSopenharmony_ci ] 167d9f0492fSopenharmony_ci } 168d9f0492fSopenharmony_ci} 169d9f0492fSopenharmony_ci 170d9f0492fSopenharmony_cigroup("startup_ueventd") { 171d9f0492fSopenharmony_ci if (defined(ohos_lite)) { 172d9f0492fSopenharmony_ci if (ohos_kernel_type == "linux") { 173d9f0492fSopenharmony_ci deps = [ 174d9f0492fSopenharmony_ci ":ueventd.config", 175d9f0492fSopenharmony_ci ":ueventd_linux", 176d9f0492fSopenharmony_ci ] 177d9f0492fSopenharmony_ci } else { 178d9f0492fSopenharmony_ci deps = [] 179d9f0492fSopenharmony_ci } 180d9f0492fSopenharmony_ci } else { 181d9f0492fSopenharmony_ci deps = [ 182d9f0492fSopenharmony_ci "//base/startup/init/ueventd:libueventd_ramdisk_static", 183d9f0492fSopenharmony_ci "//base/startup/init/ueventd:ueventd", 184d9f0492fSopenharmony_ci "//base/startup/init/ueventd:ueventd.config", 185d9f0492fSopenharmony_ci ] 186d9f0492fSopenharmony_ci } 187d9f0492fSopenharmony_ci} 188