1# Copyright (c) 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") 14import("//build/ohos.gni") 15 16config("exported_header_files") { 17 visibility = [ ":*" ] 18 include_dirs = [ 19 "//base/startup/init/interfaces/innerkits/include", 20 "//base/startup/init/interfaces/service/include/param", 21 "//base/startup/init/interfaces/service/param/include", 22 "//third_party/bounds_checking_function/include", 23 "//third_party/selinux/libselinux/include", 24 ] 25} 26 27param_include_dirs = [ 28 "//base/startup/init/services/param/include", 29 "//base/startup/init/services/param/adapter", 30 "//base/startup/init/services/param/linux", 31 "//base/startup/init/services/param/base", 32 "//base/startup/init/services/include/param", 33 "//base/startup/init/services/include", 34 "//base/startup/init/services/init/include", 35 "//base/startup/init/services/log", 36 "//base/startup/init/services/modules/init_hook", 37 "//base/startup/init/interfaces/innerkits/include/syspara", 38 "//base/startup/init/interfaces/innerkits/init_module_engine/include", 39 "//base/startup/init/services/loopevent/include", 40 "//third_party/bounds_checking_function/include", 41 "//third_party/cJSON", 42 "//commonlibrary/utils_lite/include", 43 "//base/security/selinux/interfaces/policycoreutils/include", 44] 45 46param_service_sources = [ 47 "//base/startup/init/services/param/adapter/param_persistadp.c", 48 "//base/startup/init/services/param/linux/param_message.c", 49 "//base/startup/init/services/param/linux/param_msgadp.c", 50 "//base/startup/init/services/param/linux/param_service.c", 51 "//base/startup/init/services/param/manager/param_manager.c", 52 "//base/startup/init/services/param/manager/param_persist.c", 53 "//base/startup/init/services/param/manager/param_server.c", 54] 55 56param_trigger_sources = [ 57 "//base/startup/init/services/param/trigger/trigger_checker.c", 58 "//base/startup/init/services/param/trigger/trigger_manager.c", 59 "//base/startup/init/services/param/trigger/trigger_processor.c", 60] 61 62param_client_sources = [ 63 "//base/startup/init/services/param/linux/param_message.c", 64 "//base/startup/init/services/param/linux/param_request.c", 65 "//base/startup/init/services/param/manager/param_manager.c", 66] 67 68# only for linux 69if (defined(ohos_lite)) { 70 static_library("param_init") { 71 defines = [] 72 sources = param_service_sources 73 sources += param_trigger_sources 74 include_dirs = param_include_dirs 75 public_configs = [ ":exported_header_files" ] 76 77 if (defined(boot_kernel_extended_cmdline)) { 78 defines += [ "BOOT_EXTENDED_CMDLINE=\"${boot_kernel_extended_cmdline}\"" ] 79 } 80 defines += [ 81 "_GNU_SOURCE", 82 "__LINUX__", 83 "OHOS_LITE", 84 "PARAM_SUPPORT_REAL_CHECK", 85 "INCREMENTAL_VERSION=\"${ohos_version}\"", 86 "BUILD_TYPE=\"${ohos_build_type}\"", 87 "BUILD_USER=\"${ohos_build_user}\"", 88 "BUILD_TIME=\"${ohos_build_time}\"", 89 "BUILD_HOST=\"${ohos_build_host}\"", 90 "BUILD_ROOTHASH=\"${ohos_build_roothash}\"", 91 ] 92 } 93 94 static_library("param_client") { 95 include_dirs = param_include_dirs 96 sources = param_client_sources 97 cflags = [ "-fPIC" ] 98 public_configs = [ ":exported_header_files" ] 99 defines = [ 100 "_GNU_SOURCE", 101 "__LINUX__", 102 ] 103 } 104} else { 105 ohos_static_library("param_init") { 106 sources = param_service_sources 107 sources += param_trigger_sources 108 include_dirs = param_include_dirs 109 public_configs = [ ":exported_header_files" ] 110 defines = [ 111 "_GNU_SOURCE", 112 "PARAM_SUPPORT_REAL_CHECK", 113 ] 114 115 if (defined(boot_kernel_extended_cmdline)) { 116 defines += [ "BOOT_EXTENDED_CMDLINE=\"${boot_kernel_extended_cmdline}\"" ] 117 } 118 119 if (param_base_log) { 120 defines += [ "PARAM_BASE_LOG" ] 121 } 122 if (defined(ohos_build_type)) { 123 defines += [ "BUILD_TYPE=\"${ohos_build_type}\"" ] 124 } 125 if (defined(ohos_version)) { 126 defines += [ "INCREMENTAL_VERSION=\"${ohos_version}\"" ] 127 } 128 if (defined(ohos_build_user)) { 129 defines += [ "BUILD_USER=\"${ohos_build_user}\"" ] 130 } 131 if (defined(ohos_build_time)) { 132 defines += [ "BUILD_TIME=\"${ohos_build_time}\"" ] 133 } 134 if (defined(ohos_build_host)) { 135 defines += [ "BUILD_HOST=\"${ohos_build_host}\"" ] 136 } 137 138 if (build_selinux) { 139 include_dirs += [ 140 "//third_party/selinux/libselinux/include/", 141 "//base/security/selinux/interfaces/policycoreutils/include/", 142 ] 143 defines += [ "PARAM_SUPPORT_SELINUX" ] 144 } 145 part_name = "init" 146 subsystem_name = "startup" 147 } 148 149 ohos_static_library("param_client") { 150 sources = param_client_sources 151 include_dirs = param_include_dirs 152 public_configs = [ ":exported_header_files" ] 153 deps = [] 154 defines = [ 155 "_GNU_SOURCE", 156 "INIT_AGENT", 157 ] 158 if (build_selinux) { 159 defines += [ 160 "PARAM_SUPPORT_SELINUX", 161 "PARAMWORKSPACE_NEED_MUTEX", 162 ] 163 } 164 if (param_base_log) { 165 defines += [ "PARAM_BASE_LOG" ] 166 } 167 part_name = "init" 168 subsystem_name = "startup" 169 } 170} 171