• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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")
14import("//build/ohos.gni")
15
16config("exported_header_files") {
17  visibility = [ ":*" ]
18  include_dirs = [
19    "//base/startup/init/interfaces/innerkits/include",
20    "//base/startup/init/interfaces/interfaces/innerkits/include/param",
21    "//base/startup/init/interfaces/service/param/include",
22  ]
23}
24
25config("exported_header_files_for_lite") {
26  visibility = [ ":*" ]
27}
28
29param_include_dirs = [
30  "//base/startup/init/services/param/include",
31  "//base/startup/init/services/param/adapter",
32  "//base/startup/init/services/param/linux",
33  "//base/startup/init/services/param/base",
34  "//base/startup/init/interfaces/innerkits/include/param",
35  "//base/startup/init/interfaces/innerkits/include",
36  "//base/startup/init/services/init/include",
37  "//base/startup/init/services/log",
38  "//base/startup/init/services/modules/init_hook",
39  "//base/startup/init/interfaces/innerkits/include/syspara",
40  "//base/startup/init/interfaces/innerkits/init_module_engine/include",
41  "//base/startup/init/services/loopevent/include",
42]
43
44param_service_sources = [
45  "//base/startup/init/services/param/linux/param_message.c",
46  "//base/startup/init/services/param/linux/param_msgadp.c",
47  "//base/startup/init/services/param/linux/param_service.c",
48  "//base/startup/init/services/param/manager/param_manager.c",
49  "//base/startup/init/services/param/manager/param_persist.c",
50  "//base/startup/init/services/param/manager/param_server.c",
51]
52
53param_trigger_sources = [
54  "//base/startup/init/services/param/trigger/trigger_checker.c",
55  "//base/startup/init/services/param/trigger/trigger_manager.c",
56  "//base/startup/init/services/param/trigger/trigger_processor.c",
57]
58
59param_client_sources = [
60  "//base/startup/init/services/param/linux/param_message.c",
61  "//base/startup/init/services/param/linux/param_request.c",
62  "//base/startup/init/services/param/manager/param_manager.c",
63]
64
65# only for linux
66if (defined(ohos_lite)) {
67  static_library("param_init") {
68    defines = []
69    sources = param_service_sources
70    sources += param_trigger_sources
71    sources +=
72        [ "//base/startup/init/services/param/liteos/param_persistadp.c" ]
73    include_dirs = param_include_dirs
74    include_dirs += [
75      "//base/security/selinux_adapter/interfaces/policycoreutils/include",
76      "//commonlibrary/utils_lite/include",
77      "//third_party/cJSON",
78    ]
79    public_configs = [ ":exported_header_files" ]
80    public_configs += [ ":exported_header_files_for_lite" ]
81    external_deps = [ "bounds_checking_function:libsec_static" ]
82    defines += [
83      "_GNU_SOURCE",
84      "__LINUX__",
85      "OHOS_LITE",
86      "PARAM_SUPPORT_REAL_CHECK",
87      "INCREMENTAL_VERSION=\"${ohos_version}\"",
88      "BUILD_TYPE=\"${ohos_build_type}\"",
89      "BUILD_USER=\"${ohos_build_user}\"",
90      "BUILD_TIME=\"${ohos_build_time}\"",
91      "BUILD_HOST=\"${ohos_build_host}\"",
92      "BUILD_ROOTHASH=\"${ohos_build_roothash}\"",
93    ]
94  }
95
96  static_library("param_client") {
97    include_dirs = param_include_dirs
98    include_dirs += [
99      "//base/security/selinux_adapter/interfaces/policycoreutils/include",
100      "//commonlibrary/utils_lite/include",
101      "//third_party/cJSON",
102    ]
103    sources = param_client_sources
104    public_configs = [ ":exported_header_files" ]
105    public_configs += [ ":exported_header_files_for_lite" ]
106    external_deps = [ "bounds_checking_function:libsec_static" ]
107    cflags = [ "-fPIC" ]
108    defines = [
109      "_GNU_SOURCE",
110      "__LINUX__",
111    ]
112  }
113} else {
114  ohos_static_library("param_init") {
115    sources = param_service_sources
116    sources += param_trigger_sources
117    sources +=
118        [ "//base/startup/init/services/param/adapter/param_persistadp.c" ]
119    include_dirs = param_include_dirs
120    public_configs = [ ":exported_header_files" ]
121    defines = [
122      "_GNU_SOURCE",
123      "PARAM_SUPPORT_REAL_CHECK",
124      "SUPPORT_PARAM_LOAD_HOOK",
125    ]
126    if (is_asan) {
127      defines += [ "INIT_ASAN" ]
128    }
129    external_deps = [
130      "bounds_checking_function:libsec_static",
131      "cJSON:cjson",
132    ]
133    public_external_deps = [ "selinux:libselinux" ]
134
135    if (param_base_log) {
136      defines += [ "PARAM_BASE_LOG" ]
137    }
138    if (defined(ohos_build_type)) {
139      defines += [ "BUILD_TYPE=\"${ohos_build_type}\"" ]
140    }
141    if (defined(ohos_version)) {
142      defines += [ "INCREMENTAL_VERSION=\"${ohos_version}\"" ]
143    }
144    if (defined(ohos_build_user)) {
145      defines += [ "BUILD_USER=\"${ohos_build_user}\"" ]
146    }
147    if (defined(ohos_build_time)) {
148      defines += [ "BUILD_TIME=\"${ohos_build_time}\"" ]
149    }
150    if (defined(ohos_build_host)) {
151      defines += [ "BUILD_HOST=\"${ohos_build_host}\"" ]
152    }
153
154    if (build_selinux) {
155      defines += [
156        "PARAM_SUPPORT_SELINUX",
157        "PARAMWORKSPACE_NEED_MUTEX",
158      ]
159      external_deps += [ "selinux_adapter:libselinux_parameter_static" ]
160    }
161
162    deps = [ "//base/startup/init/services/param/base:param_base" ]
163    part_name = "init"
164    subsystem_name = "startup"
165  }
166
167  ohos_static_library("param_client") {
168    sources = param_client_sources
169    include_dirs = param_include_dirs
170    public_configs = [ ":exported_header_files" ]
171    deps = [
172      "//base/startup/init/services/log:agent_log",
173      "//base/startup/init/services/param/base:param_base",
174    ]
175    external_deps = [
176      "bounds_checking_function:libsec_static",
177      "cJSON:cjson_static",
178    ]
179    if (build_selinux) {
180      external_deps += [ "selinux_adapter:libselinux_parameter_static" ]
181    }
182
183    cflags = [ "-Wno-deprecated-pragma" ]
184    defines = [
185      "_GNU_SOURCE",
186      "INIT_AGENT",
187    ]
188    if (build_selinux) {
189      defines += [
190        "PARAM_SUPPORT_SELINUX",
191        "PARAMWORKSPACE_NEED_MUTEX",
192      ]
193    }
194    if (param_base_log) {
195      defines += [ "PARAM_BASE_LOG" ]
196    }
197    part_name = "init"
198    subsystem_name = "startup"
199  }
200}
201