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/startup/init/interfaces/innerkits/include/syspara", 17 "//base/startup/init/services/modules/init_hook", 18 "//base/startup/init/services/param/include", 19 "//base/startup/init/services/param/adapter", 20 "//base/startup/init/services/param/base", 21 "//base/startup/init/services/include/param", 22 "//base/startup/init/services/include", 23 "//base/startup/init/services/init/include", 24 "//base/startup/init/services/log", 25 "//base/startup/init/services/modules/init_hook", 26 "//base/startup/init/services/loopevent/include", 27 "//third_party/bounds_checking_function/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/service/include/param", 63 "//base/startup/init/interfaces/service/param/include", 64 ] 65} 66 67base_sources = [ 68 "//base/startup/init/services/log/init_commlog.c", 69 "//base/startup/init/services/param/base/param_base.c", 70 "//base/startup/init/services/param/base/param_comm.c", 71 "//base/startup/init/services/param/base/param_trie.c", 72 "//base/startup/init/services/param/liteos/param_client.c", 73 "//base/startup/init/services/param/liteos/param_litedac.c", 74 "//base/startup/init/services/param/liteos/param_osadp.c", 75 "//base/startup/init/services/param/manager/param_manager.c", 76 "//base/startup/init/services/param/manager/param_persist.c", 77 "//base/startup/init/services/utils/init_hashmap.c", 78 "//base/startup/init/services/utils/list.c", 79] 80 81static_library("param_init_lite") { 82 defines = [] 83 deps = [] 84 sources = [ 85 "//base/startup/init/services/param/manager/param_manager.c", 86 "//base/startup/init/services/param/manager/param_server.c", 87 ] 88 include_dirs = param_include_dirs 89 defines += param_build_defines 90 public_configs = [ ":exported_header_files" ] 91 92 if (ohos_kernel_type == "liteos_a") { 93 sources += [ 94 "//base/startup/init/services/param/adapter/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(config_ohos_startup_init_lite_memory_size)) { 107 defines += 108 [ "PARAM_WORKSPACE_MAX=${config_ohos_startup_init_lite_memory_size}" ] 109 } 110} 111 112static_library("param_client_lite") { 113 sources = base_sources 114 include_dirs = param_include_dirs 115 defines = param_build_defines 116 public_configs = [ ":exported_header_files" ] 117 118 if (config_ohos_startup_init_lite_no_log) { 119 defines += [ "INIT_NO_LOG" ] 120 } 121 122 if (ohos_kernel_type == "liteos_a") { 123 sources += 124 [ "//base/startup/init/services/param/adapter/param_persistadp.c" ] 125 defines += [ 126 "__LITEOS_A__", 127 "WORKSPACE_AREA_NEED_MUTEX", 128 "PARAM_PERSIST_SAVE_MUTEX", 129 "PARAMWORKSPACE_NEED_MUTEX", 130 "PARAM_SUPPORT_CYCLE_CHECK", 131 ] 132 if (defined(config_ohos_startup_init_lite_memory_size)) { 133 defines += 134 [ "PARAM_WORKSPACE_MAX=${config_ohos_startup_init_lite_memory_size}" ] 135 } 136 } else if (ohos_kernel_type == "liteos_m") { 137 sources += [ 138 "//base/startup/init/services/param/liteos/param_hal.c", 139 "//base/startup/init/services/param/liteos/param_service.c", 140 "//base/startup/init/services/param/manager/param_server.c", 141 ] 142 if (enable_ohos_startup_init_lite_use_posix_file_api) { 143 defines += [ "PARAM_SUPPORT_POSIX" ] 144 } 145 defines += [ 146 "__LITEOS_M__", 147 "WORKSPACE_AREA_NEED_MUTEX", 148 "PARAM_PERSIST_SAVE_MUTEX", 149 "PARAMWORKSPACE_NEED_MUTEX", 150 ] 151 if (config_ohos_startup_init_lite_data_path != "") { 152 defines += [ "DATA_PATH=\"${config_ohos_startup_init_lite_data_path}\"" ] 153 } 154 if (enable_ohos_startup_init_feature_begetctl_liteos) { 155 deps = [ ":lite_ohos_param_to" ] 156 include_dirs += [ "$root_out_dir/gen/init" ] 157 defines += [ "PARAM_LOAD_CFG_FROM_CODE" ] 158 } 159 if (defined(config_ohos_startup_init_lite_memory_size)) { 160 defines += 161 [ "PARAM_WORKSPACE_MAX=${config_ohos_startup_init_lite_memory_size}" ] 162 } 163 } 164} 165