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") 14 15param_include_dirs = [ 16 "//base/hiviewdfx/hilog_lite/interfaces/native/kits", 17 "//base/startup/init/interfaces/innerkits/include/syspara", 18 "//base/startup/init/services/modules/init_hook", 19 "//base/startup/init/services/param/include", 20 "//base/startup/init/services/param/adapter", 21 "//base/startup/init/services/param/base", 22 "//base/startup/init/interfaces/innerkits/include/param", 23 "//base/startup/init/interfaces/innerkits/include", 24 "//base/startup/init/services/init/include", 25 "//base/startup/init/services/log", 26 "//base/startup/init/services/modules/init_hook", 27 "//base/startup/init/services/loopevent/include", 28 "//third_party/cJSON", 29 "//commonlibrary/utils_lite/include", 30] 31 32param_build_defines = [ 33 "_GNU_SOURCE", 34 "INCREMENTAL_VERSION=\"${ohos_version}\"", 35 "BUILD_TYPE=\"${ohos_build_type}\"", 36 "BUILD_USER=\"${ohos_build_user}\"", 37 "BUILD_TIME=\"${ohos_build_time}\"", 38 "BUILD_HOST=\"${ohos_build_host}\"", 39 "BUILD_ROOTHASH=\"${ohos_build_roothash}\"", 40] 41 42action("lite_ohos_param_to") { 43 script = "//base/startup/init/scripts/param_cfg_to_code.py" 44 args = [ 45 "--source", 46 rebase_path( 47 "//base/startup/init/services/etc_lite/param/ohos_const/ohos.para"), 48 "--source", 49 rebase_path("$ohos_product_adapter_dir/utils/sys_param/vendor.para"), 50 "--source", 51 rebase_path("//base/startup/init/services/etc/param/ohos.para"), 52 "--dest_dir", 53 rebase_path("$root_out_dir/gen/init/"), 54 ] 55 outputs = [ "$target_gen_dir/${target_name}_param_cfg_to_code.log" ] 56} 57 58config("exported_header_files") { 59 visibility = [ ":*" ] 60 include_dirs = [ 61 "//base/startup/init/interfaces/innerkits/include", 62 "//base/startup/init/interfaces/interfaces/innerkits/include/param", 63 "//base/startup/init/interfaces/service/param/include", 64 ] 65} 66 67base_sources = [ 68 "//base/startup/init/services/param/base/param_base.c", 69 "//base/startup/init/services/param/base/param_comm.c", 70 "//base/startup/init/services/param/base/param_trie.c", 71 "//base/startup/init/services/param/liteos/param_client.c", 72 "//base/startup/init/services/param/liteos/param_litedac.c", 73 "//base/startup/init/services/param/liteos/param_osadp.c", 74 "//base/startup/init/services/param/manager/param_manager.c", 75 "//base/startup/init/services/param/manager/param_persist.c", 76 "//base/startup/init/services/utils/init_hashmap.c", 77 "//base/startup/init/services/utils/list.c", 78] 79 80static_library("param_init_lite") { 81 defines = [] 82 deps = [] 83 sources = [ 84 "//base/startup/init/services/param/manager/param_manager.c", 85 "//base/startup/init/services/param/manager/param_server.c", 86 ] 87 include_dirs = param_include_dirs 88 defines += param_build_defines 89 public_configs = [ ":exported_header_files" ] 90 external_deps = [ "bounds_checking_function:libsec_static" ] 91 92 if (ohos_kernel_type == "liteos_a") { 93 sources += [ 94 "//base/startup/init/services/param/liteos/param_persistadp.c", 95 "//base/startup/init/services/param/liteos/param_service.c", 96 "//base/startup/init/services/param/manager/param_persist.c", 97 ] 98 defines += [ 99 "WORKSPACE_AREA_NEED_MUTEX", 100 "PARAM_PERSIST_SAVE_MUTEX", 101 "PARAMWORKSPACE_NEED_MUTEX", 102 "__LITEOS_A__", 103 "PARAM_SUPPORT_CYCLE_CHECK", 104 ] 105 } 106 if (defined(init_lite_memory_size)) { 107 defines += [ "PARAM_WORKSPACE_MAX=${init_lite_memory_size}" ] 108 } 109} 110 111static_library("param_client_lite") { 112 sources = base_sources 113 include_dirs = param_include_dirs 114 defines = param_build_defines 115 public_configs = [ ":exported_header_files" ] 116 external_deps = [ "bounds_checking_function:libsec_static" ] 117 118 if (init_lite_no_log) { 119 defines += [ "INIT_NO_LOG" ] 120 } else { 121 sources += [ "//base/startup/init/services/log/init_commlog.c" ] 122 } 123 124 if (ohos_kernel_type == "liteos_a") { 125 sources += 126 [ "//base/startup/init/services/param/liteos/param_persistadp.c" ] 127 defines += [ 128 "__LITEOS_A__", 129 "WORKSPACE_AREA_NEED_MUTEX", 130 "PARAM_PERSIST_SAVE_MUTEX", 131 "PARAMWORKSPACE_NEED_MUTEX", 132 "PARAM_SUPPORT_CYCLE_CHECK", 133 ] 134 } else if (ohos_kernel_type == "liteos_m") { 135 sources += [ 136 "//base/startup/init/services/param/liteos/param_hal.c", 137 "//base/startup/init/services/param/liteos/param_service.c", 138 "//base/startup/init/services/param/manager/param_server.c", 139 ] 140 if (init_lite_use_posix_file_api) { 141 defines += [ "PARAM_SUPPORT_POSIX" ] 142 } 143 defines += [ 144 "__LITEOS_M__", 145 "WORKSPACE_AREA_NEED_MUTEX", 146 "PARAM_PERSIST_SAVE_MUTEX", 147 "PARAMWORKSPACE_NEED_MUTEX", 148 ] 149 if (config_ohos_startup_init_lite_data_path != "") { 150 defines += [ "DATA_PATH=\"${config_ohos_startup_init_lite_data_path}\"" ] 151 } 152 if (init_feature_begetctl_liteos) { 153 deps = [ ":lite_ohos_param_to" ] 154 include_dirs += [ "$root_out_dir/gen/init" ] 155 defines += [ "PARAM_LOAD_CFG_FROM_CODE" ] 156 } 157 158 if (defined(init_lite_memory_size)) { 159 defines += [ "PARAM_WORKSPACE_MAX=${init_lite_memory_size}" ] 160 } 161 } 162} 163