• 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/service/include/param",
21    "//base/startup/init/interfaces/service/param/include",
22    "//third_party/bounds_checking_function/include",
23    "//third_party/selinux/libselinux/include",
24  ]
25}
26
27param_include_dirs = [
28  "//base/startup/init/services/param/include",
29  "//base/startup/init/services/param/adapter",
30  "//base/startup/init/services/param/linux",
31  "//base/startup/init/services/param/base",
32  "//base/startup/init/services/include/param",
33  "//base/startup/init/services/include",
34  "//base/startup/init/services/init/include",
35  "//base/startup/init/services/log",
36  "//base/startup/init/services/modules/init_hook",
37  "//base/startup/init/interfaces/innerkits/include/syspara",
38  "//base/startup/init/interfaces/innerkits/init_module_engine/include",
39  "//base/startup/init/services/loopevent/include",
40  "//third_party/bounds_checking_function/include",
41  "//third_party/cJSON",
42  "//commonlibrary/utils_lite/include",
43  "//base/security/selinux/interfaces/policycoreutils/include",
44]
45
46param_service_sources = [
47  "//base/startup/init/services/param/adapter/param_persistadp.c",
48  "//base/startup/init/services/param/linux/param_message.c",
49  "//base/startup/init/services/param/linux/param_msgadp.c",
50  "//base/startup/init/services/param/linux/param_service.c",
51  "//base/startup/init/services/param/manager/param_manager.c",
52  "//base/startup/init/services/param/manager/param_persist.c",
53  "//base/startup/init/services/param/manager/param_server.c",
54]
55
56param_trigger_sources = [
57  "//base/startup/init/services/param/trigger/trigger_checker.c",
58  "//base/startup/init/services/param/trigger/trigger_manager.c",
59  "//base/startup/init/services/param/trigger/trigger_processor.c",
60]
61
62param_client_sources = [
63  "//base/startup/init/services/param/linux/param_message.c",
64  "//base/startup/init/services/param/linux/param_request.c",
65  "//base/startup/init/services/param/manager/param_manager.c",
66]
67
68# only for linux
69if (defined(ohos_lite)) {
70  static_library("param_init") {
71    defines = []
72    sources = param_service_sources
73    sources += param_trigger_sources
74    include_dirs = param_include_dirs
75    public_configs = [ ":exported_header_files" ]
76
77    if (defined(boot_kernel_extended_cmdline)) {
78      defines += [ "BOOT_EXTENDED_CMDLINE=\"${boot_kernel_extended_cmdline}\"" ]
79    }
80    defines += [
81      "_GNU_SOURCE",
82      "__LINUX__",
83      "OHOS_LITE",
84      "PARAM_SUPPORT_REAL_CHECK",
85      "INCREMENTAL_VERSION=\"${ohos_version}\"",
86      "BUILD_TYPE=\"${ohos_build_type}\"",
87      "BUILD_USER=\"${ohos_build_user}\"",
88      "BUILD_TIME=\"${ohos_build_time}\"",
89      "BUILD_HOST=\"${ohos_build_host}\"",
90      "BUILD_ROOTHASH=\"${ohos_build_roothash}\"",
91    ]
92  }
93
94  static_library("param_client") {
95    include_dirs = param_include_dirs
96    sources = param_client_sources
97    cflags = [ "-fPIC" ]
98    public_configs = [ ":exported_header_files" ]
99    defines = [
100      "_GNU_SOURCE",
101      "__LINUX__",
102    ]
103  }
104} else {
105  ohos_static_library("param_init") {
106    sources = param_service_sources
107    sources += param_trigger_sources
108    include_dirs = param_include_dirs
109    public_configs = [ ":exported_header_files" ]
110    defines = [
111      "_GNU_SOURCE",
112      "PARAM_SUPPORT_REAL_CHECK",
113    ]
114
115    if (defined(boot_kernel_extended_cmdline)) {
116      defines += [ "BOOT_EXTENDED_CMDLINE=\"${boot_kernel_extended_cmdline}\"" ]
117    }
118
119    if (param_base_log) {
120      defines += [ "PARAM_BASE_LOG" ]
121    }
122    if (defined(ohos_build_type)) {
123      defines += [ "BUILD_TYPE=\"${ohos_build_type}\"" ]
124    }
125    if (defined(ohos_version)) {
126      defines += [ "INCREMENTAL_VERSION=\"${ohos_version}\"" ]
127    }
128    if (defined(ohos_build_user)) {
129      defines += [ "BUILD_USER=\"${ohos_build_user}\"" ]
130    }
131    if (defined(ohos_build_time)) {
132      defines += [ "BUILD_TIME=\"${ohos_build_time}\"" ]
133    }
134    if (defined(ohos_build_host)) {
135      defines += [ "BUILD_HOST=\"${ohos_build_host}\"" ]
136    }
137
138    if (build_selinux) {
139      include_dirs += [
140        "//third_party/selinux/libselinux/include/",
141        "//base/security/selinux/interfaces/policycoreutils/include/",
142      ]
143      defines += [ "PARAM_SUPPORT_SELINUX" ]
144    }
145    part_name = "init"
146    subsystem_name = "startup"
147  }
148
149  ohos_static_library("param_client") {
150    sources = param_client_sources
151    include_dirs = param_include_dirs
152    public_configs = [ ":exported_header_files" ]
153    deps = []
154    defines = [
155      "_GNU_SOURCE",
156      "INIT_AGENT",
157    ]
158    if (build_selinux) {
159      defines += [
160        "PARAM_SUPPORT_SELINUX",
161        "PARAMWORKSPACE_NEED_MUTEX",
162      ]
163    }
164    if (param_base_log) {
165      defines += [ "PARAM_BASE_LOG" ]
166    }
167    part_name = "init"
168    subsystem_name = "startup"
169  }
170}
171