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