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/bounds_checking_function/include",
29  "//third_party/cJSON",
30  "//commonlibrary/utils_lite/include",
31]
32
33param_build_defines = [
34  "_GNU_SOURCE",
35  "INCREMENTAL_VERSION=\"${ohos_version}\"",
36  "BUILD_TYPE=\"${ohos_build_type}\"",
37  "BUILD_USER=\"${ohos_build_user}\"",
38  "BUILD_TIME=\"${ohos_build_time}\"",
39  "BUILD_HOST=\"${ohos_build_host}\"",
40  "BUILD_ROOTHASH=\"${ohos_build_roothash}\"",
41]
42
43action("lite_ohos_param_to") {
44  script = "//base/startup/init/scripts/param_cfg_to_code.py"
45  args = [
46    "--source",
47    rebase_path(
48        "//base/startup/init/services/etc_lite/param/ohos_const/ohos.para"),
49    "--source",
50    rebase_path("$ohos_product_adapter_dir/utils/sys_param/vendor.para"),
51    "--source",
52    rebase_path("//base/startup/init/services/etc/param/ohos.para"),
53    "--dest_dir",
54    rebase_path("$root_out_dir/gen/init/"),
55  ]
56  outputs = [ "$target_gen_dir/${target_name}_param_cfg_to_code.log" ]
57}
58
59config("exported_header_files") {
60  visibility = [ ":*" ]
61  include_dirs = [
62    "//base/startup/init/interfaces/innerkits/include",
63    "//base/startup/init/interfaces/interfaces/innerkits/include/param",
64    "//base/startup/init/interfaces/service/param/include",
65  ]
66}
67
68base_sources = [
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/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
117  if (init_lite_no_log) {
118    defines += [ "INIT_NO_LOG" ]
119  } else {
120    sources += [ "//base/startup/init/services/log/init_commlog.c" ]
121  }
122
123  if (ohos_kernel_type == "liteos_a") {
124    sources +=
125        [ "//base/startup/init/services/param/liteos/param_persistadp.c" ]
126    defines += [
127      "__LITEOS_A__",
128      "WORKSPACE_AREA_NEED_MUTEX",
129      "PARAM_PERSIST_SAVE_MUTEX",
130      "PARAMWORKSPACE_NEED_MUTEX",
131      "PARAM_SUPPORT_CYCLE_CHECK",
132    ]
133  } else if (ohos_kernel_type == "liteos_m") {
134    sources += [
135      "//base/startup/init/services/param/liteos/param_hal.c",
136      "//base/startup/init/services/param/liteos/param_service.c",
137      "//base/startup/init/services/param/manager/param_server.c",
138    ]
139    if (init_lite_use_posix_file_api) {
140      defines += [ "PARAM_SUPPORT_POSIX" ]
141    }
142    defines += [
143      "__LITEOS_M__",
144      "WORKSPACE_AREA_NEED_MUTEX",
145      "PARAM_PERSIST_SAVE_MUTEX",
146      "PARAMWORKSPACE_NEED_MUTEX",
147    ]
148    if (config_ohos_startup_init_lite_data_path != "") {
149      defines += [ "DATA_PATH=\"${config_ohos_startup_init_lite_data_path}\"" ]
150    }
151    if (init_feature_begetctl_liteos) {
152      deps = [ ":lite_ohos_param_to" ]
153      include_dirs += [ "$root_out_dir/gen/init" ]
154      defines += [ "PARAM_LOAD_CFG_FROM_CODE" ]
155    }
156
157    if (defined(init_lite_memory_size)) {
158      defines += [ "PARAM_WORKSPACE_MAX=${init_lite_memory_size}" ]
159    }
160  }
161}
162