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 if (board_toolchain_type == "clang") { 113 cflags = [ 114 "-Wno-error=unused-but-set-variable", 115 "-Wno-error=macro-redefined", 116 "-Wno-error=unused-function", 117 ] 118 } 119 sources = base_sources 120 include_dirs = param_include_dirs 121 defines = param_build_defines 122 public_configs = [ ":exported_header_files" ] 123 external_deps = [ "bounds_checking_function:libsec_static" ] 124 125 if (init_lite_no_log) { 126 defines += [ "INIT_NO_LOG" ] 127 } else { 128 sources += [ "//base/startup/init/services/log/init_commlog.c" ] 129 } 130 131 if (ohos_kernel_type == "liteos_a") { 132 sources += 133 [ "//base/startup/init/services/param/liteos/param_persistadp.c" ] 134 defines += [ 135 "__LITEOS_A__", 136 "WORKSPACE_AREA_NEED_MUTEX", 137 "PARAM_PERSIST_SAVE_MUTEX", 138 "PARAMWORKSPACE_NEED_MUTEX", 139 "PARAM_SUPPORT_CYCLE_CHECK", 140 ] 141 } else if (ohos_kernel_type == "liteos_m") { 142 sources += [ 143 "//base/startup/init/services/param/liteos/param_hal.c", 144 "//base/startup/init/services/param/liteos/param_service.c", 145 "//base/startup/init/services/param/manager/param_server.c", 146 ] 147 if (init_lite_use_posix_file_api) { 148 defines += [ "PARAM_SUPPORT_POSIX" ] 149 } 150 defines += [ 151 "__LITEOS_M__", 152 "WORKSPACE_AREA_NEED_MUTEX", 153 "PARAM_PERSIST_SAVE_MUTEX", 154 "PARAMWORKSPACE_NEED_MUTEX", 155 ] 156 if (config_ohos_startup_init_lite_data_path != "") { 157 defines += [ "DATA_PATH=\"${config_ohos_startup_init_lite_data_path}\"" ] 158 } 159 if (init_feature_begetctl_liteos) { 160 deps = [ ":lite_ohos_param_to" ] 161 include_dirs += [ "$root_out_dir/gen/init" ] 162 defines += [ "PARAM_LOAD_CFG_FROM_CODE" ] 163 } 164 165 if (defined(init_lite_memory_size)) { 166 defines += [ "PARAM_WORKSPACE_MAX=${init_lite_memory_size}" ] 167 } 168 } 169} 170