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