1d9f0492fSopenharmony_ci# Copyright (c) 2022 Huawei Device Co., Ltd. 2d9f0492fSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 3d9f0492fSopenharmony_ci# you may not use this file except in compliance with the License. 4d9f0492fSopenharmony_ci# You may obtain a copy of the License at 5d9f0492fSopenharmony_ci# 6d9f0492fSopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 7d9f0492fSopenharmony_ci# 8d9f0492fSopenharmony_ci# Unless required by applicable law or agreed to in writing, software 9d9f0492fSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 10d9f0492fSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11d9f0492fSopenharmony_ci# See the License for the specific language governing permissions and 12d9f0492fSopenharmony_ci# limitations under the License. 13d9f0492fSopenharmony_ciimport("//base/startup/init/begetd.gni") 14d9f0492fSopenharmony_ci 15d9f0492fSopenharmony_ciparam_include_dirs = [ 16d9f0492fSopenharmony_ci "//base/hiviewdfx/hilog_lite/interfaces/native/kits", 17d9f0492fSopenharmony_ci "//base/startup/init/interfaces/innerkits/include/syspara", 18d9f0492fSopenharmony_ci "//base/startup/init/services/modules/init_hook", 19d9f0492fSopenharmony_ci "//base/startup/init/services/param/include", 20d9f0492fSopenharmony_ci "//base/startup/init/services/param/adapter", 21d9f0492fSopenharmony_ci "//base/startup/init/services/param/base", 22d9f0492fSopenharmony_ci "//base/startup/init/interfaces/innerkits/include/param", 23d9f0492fSopenharmony_ci "//base/startup/init/interfaces/innerkits/include", 24d9f0492fSopenharmony_ci "//base/startup/init/services/init/include", 25d9f0492fSopenharmony_ci "//base/startup/init/services/log", 26d9f0492fSopenharmony_ci "//base/startup/init/services/modules/init_hook", 27d9f0492fSopenharmony_ci "//base/startup/init/services/loopevent/include", 28d9f0492fSopenharmony_ci "//third_party/cJSON", 29d9f0492fSopenharmony_ci "//commonlibrary/utils_lite/include", 30d9f0492fSopenharmony_ci] 31d9f0492fSopenharmony_ci 32d9f0492fSopenharmony_ciparam_build_defines = [ 33d9f0492fSopenharmony_ci "_GNU_SOURCE", 34d9f0492fSopenharmony_ci "INCREMENTAL_VERSION=\"${ohos_version}\"", 35d9f0492fSopenharmony_ci "BUILD_TYPE=\"${ohos_build_type}\"", 36d9f0492fSopenharmony_ci "BUILD_USER=\"${ohos_build_user}\"", 37d9f0492fSopenharmony_ci "BUILD_TIME=\"${ohos_build_time}\"", 38d9f0492fSopenharmony_ci "BUILD_HOST=\"${ohos_build_host}\"", 39d9f0492fSopenharmony_ci "BUILD_ROOTHASH=\"${ohos_build_roothash}\"", 40d9f0492fSopenharmony_ci] 41d9f0492fSopenharmony_ci 42d9f0492fSopenharmony_ciaction("lite_ohos_param_to") { 43d9f0492fSopenharmony_ci script = "//base/startup/init/scripts/param_cfg_to_code.py" 44d9f0492fSopenharmony_ci args = [ 45d9f0492fSopenharmony_ci "--source", 46d9f0492fSopenharmony_ci rebase_path( 47d9f0492fSopenharmony_ci "//base/startup/init/services/etc_lite/param/ohos_const/ohos.para"), 48d9f0492fSopenharmony_ci "--source", 49d9f0492fSopenharmony_ci rebase_path("$ohos_product_adapter_dir/utils/sys_param/vendor.para"), 50d9f0492fSopenharmony_ci "--source", 51d9f0492fSopenharmony_ci rebase_path("//base/startup/init/services/etc/param/ohos.para"), 52d9f0492fSopenharmony_ci "--dest_dir", 53d9f0492fSopenharmony_ci rebase_path("$root_out_dir/gen/init/"), 54d9f0492fSopenharmony_ci ] 55d9f0492fSopenharmony_ci outputs = [ "$target_gen_dir/${target_name}_param_cfg_to_code.log" ] 56d9f0492fSopenharmony_ci} 57d9f0492fSopenharmony_ci 58d9f0492fSopenharmony_ciconfig("exported_header_files") { 59d9f0492fSopenharmony_ci visibility = [ ":*" ] 60d9f0492fSopenharmony_ci include_dirs = [ 61d9f0492fSopenharmony_ci "//base/startup/init/interfaces/innerkits/include", 62d9f0492fSopenharmony_ci "//base/startup/init/interfaces/interfaces/innerkits/include/param", 63d9f0492fSopenharmony_ci "//base/startup/init/interfaces/service/param/include", 64d9f0492fSopenharmony_ci ] 65d9f0492fSopenharmony_ci} 66d9f0492fSopenharmony_ci 67d9f0492fSopenharmony_cibase_sources = [ 68d9f0492fSopenharmony_ci "//base/startup/init/services/param/base/param_base.c", 69d9f0492fSopenharmony_ci "//base/startup/init/services/param/base/param_comm.c", 70d9f0492fSopenharmony_ci "//base/startup/init/services/param/base/param_trie.c", 71d9f0492fSopenharmony_ci "//base/startup/init/services/param/liteos/param_client.c", 72d9f0492fSopenharmony_ci "//base/startup/init/services/param/liteos/param_litedac.c", 73d9f0492fSopenharmony_ci "//base/startup/init/services/param/liteos/param_osadp.c", 74d9f0492fSopenharmony_ci "//base/startup/init/services/param/manager/param_manager.c", 75d9f0492fSopenharmony_ci "//base/startup/init/services/param/manager/param_persist.c", 76d9f0492fSopenharmony_ci "//base/startup/init/services/utils/init_hashmap.c", 77d9f0492fSopenharmony_ci "//base/startup/init/services/utils/list.c", 78d9f0492fSopenharmony_ci] 79d9f0492fSopenharmony_ci 80d9f0492fSopenharmony_cistatic_library("param_init_lite") { 81d9f0492fSopenharmony_ci defines = [] 82d9f0492fSopenharmony_ci deps = [] 83d9f0492fSopenharmony_ci sources = [ 84d9f0492fSopenharmony_ci "//base/startup/init/services/param/manager/param_manager.c", 85d9f0492fSopenharmony_ci "//base/startup/init/services/param/manager/param_server.c", 86d9f0492fSopenharmony_ci ] 87d9f0492fSopenharmony_ci include_dirs = param_include_dirs 88d9f0492fSopenharmony_ci defines += param_build_defines 89d9f0492fSopenharmony_ci public_configs = [ ":exported_header_files" ] 90d9f0492fSopenharmony_ci external_deps = [ "bounds_checking_function:libsec_static" ] 91d9f0492fSopenharmony_ci 92d9f0492fSopenharmony_ci if (ohos_kernel_type == "liteos_a") { 93d9f0492fSopenharmony_ci sources += [ 94d9f0492fSopenharmony_ci "//base/startup/init/services/param/liteos/param_persistadp.c", 95d9f0492fSopenharmony_ci "//base/startup/init/services/param/liteos/param_service.c", 96d9f0492fSopenharmony_ci "//base/startup/init/services/param/manager/param_persist.c", 97d9f0492fSopenharmony_ci ] 98d9f0492fSopenharmony_ci defines += [ 99d9f0492fSopenharmony_ci "WORKSPACE_AREA_NEED_MUTEX", 100d9f0492fSopenharmony_ci "PARAM_PERSIST_SAVE_MUTEX", 101d9f0492fSopenharmony_ci "PARAMWORKSPACE_NEED_MUTEX", 102d9f0492fSopenharmony_ci "__LITEOS_A__", 103d9f0492fSopenharmony_ci "PARAM_SUPPORT_CYCLE_CHECK", 104d9f0492fSopenharmony_ci ] 105d9f0492fSopenharmony_ci } 106d9f0492fSopenharmony_ci if (defined(init_lite_memory_size)) { 107d9f0492fSopenharmony_ci defines += [ "PARAM_WORKSPACE_MAX=${init_lite_memory_size}" ] 108d9f0492fSopenharmony_ci } 109d9f0492fSopenharmony_ci} 110d9f0492fSopenharmony_ci 111d9f0492fSopenharmony_cistatic_library("param_client_lite") { 112d9f0492fSopenharmony_ci sources = base_sources 113d9f0492fSopenharmony_ci include_dirs = param_include_dirs 114d9f0492fSopenharmony_ci defines = param_build_defines 115d9f0492fSopenharmony_ci public_configs = [ ":exported_header_files" ] 116d9f0492fSopenharmony_ci external_deps = [ "bounds_checking_function:libsec_static" ] 117d9f0492fSopenharmony_ci 118d9f0492fSopenharmony_ci if (init_lite_no_log) { 119d9f0492fSopenharmony_ci defines += [ "INIT_NO_LOG" ] 120d9f0492fSopenharmony_ci } else { 121d9f0492fSopenharmony_ci sources += [ "//base/startup/init/services/log/init_commlog.c" ] 122d9f0492fSopenharmony_ci } 123d9f0492fSopenharmony_ci 124d9f0492fSopenharmony_ci if (ohos_kernel_type == "liteos_a") { 125d9f0492fSopenharmony_ci sources += 126d9f0492fSopenharmony_ci [ "//base/startup/init/services/param/liteos/param_persistadp.c" ] 127d9f0492fSopenharmony_ci defines += [ 128d9f0492fSopenharmony_ci "__LITEOS_A__", 129d9f0492fSopenharmony_ci "WORKSPACE_AREA_NEED_MUTEX", 130d9f0492fSopenharmony_ci "PARAM_PERSIST_SAVE_MUTEX", 131d9f0492fSopenharmony_ci "PARAMWORKSPACE_NEED_MUTEX", 132d9f0492fSopenharmony_ci "PARAM_SUPPORT_CYCLE_CHECK", 133d9f0492fSopenharmony_ci ] 134d9f0492fSopenharmony_ci } else if (ohos_kernel_type == "liteos_m") { 135d9f0492fSopenharmony_ci sources += [ 136d9f0492fSopenharmony_ci "//base/startup/init/services/param/liteos/param_hal.c", 137d9f0492fSopenharmony_ci "//base/startup/init/services/param/liteos/param_service.c", 138d9f0492fSopenharmony_ci "//base/startup/init/services/param/manager/param_server.c", 139d9f0492fSopenharmony_ci ] 140d9f0492fSopenharmony_ci if (init_lite_use_posix_file_api) { 141d9f0492fSopenharmony_ci defines += [ "PARAM_SUPPORT_POSIX" ] 142d9f0492fSopenharmony_ci } 143d9f0492fSopenharmony_ci defines += [ 144d9f0492fSopenharmony_ci "__LITEOS_M__", 145d9f0492fSopenharmony_ci "WORKSPACE_AREA_NEED_MUTEX", 146d9f0492fSopenharmony_ci "PARAM_PERSIST_SAVE_MUTEX", 147d9f0492fSopenharmony_ci "PARAMWORKSPACE_NEED_MUTEX", 148d9f0492fSopenharmony_ci ] 149d9f0492fSopenharmony_ci if (config_ohos_startup_init_lite_data_path != "") { 150d9f0492fSopenharmony_ci defines += [ "DATA_PATH=\"${config_ohos_startup_init_lite_data_path}\"" ] 151d9f0492fSopenharmony_ci } 152d9f0492fSopenharmony_ci if (init_feature_begetctl_liteos) { 153d9f0492fSopenharmony_ci deps = [ ":lite_ohos_param_to" ] 154d9f0492fSopenharmony_ci include_dirs += [ "$root_out_dir/gen/init" ] 155d9f0492fSopenharmony_ci defines += [ "PARAM_LOAD_CFG_FROM_CODE" ] 156d9f0492fSopenharmony_ci } 157d9f0492fSopenharmony_ci 158d9f0492fSopenharmony_ci if (defined(init_lite_memory_size)) { 159d9f0492fSopenharmony_ci defines += [ "PARAM_WORKSPACE_MAX=${init_lite_memory_size}" ] 160d9f0492fSopenharmony_ci } 161d9f0492fSopenharmony_ci } 162d9f0492fSopenharmony_ci} 163