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.
13
14import("//build/ohos.gni")
15import("//foundation/distributeddatamgr/data_share/datashare.gni")
16
17config("ability_config") {
18  visibility = [ ":*" ]
19  include_dirs = [
20    "common/include",
21    "consumer/include",
22    "provider/include",
23    "${datashare_native_consumer_path}/include",
24    "${datashare_native_provider_path}/include",
25    "${datashare_native_proxy_path}/include",
26  ]
27
28  cflags = []
29  if (target_cpu == "arm") {
30    cflags += [ "-DBINDER_IPC_32BIT" ]
31  }
32}
33
34config("datashare_public_config") {
35  visibility = [ ":*" ]
36  include_dirs = [
37    "common/include",
38    "consumer/include",
39    "provider/include",
40    "${datashare_common_native_path}/include",
41    "${datashare_native_consumer_path}/controller/common",
42    "${datashare_native_consumer_path}/controller/provider/include",
43    "${datashare_native_consumer_path}/controller/service/include",
44    "${datashare_native_consumer_path}/include",
45    "${datashare_native_provider_path}/include",
46    "${datashare_native_proxy_path}/include",
47  ]
48}
49
50datashare_consumer_sources = [
51  "${datashare_common_native_path}/src/call_reporter.cpp",
52  "${datashare_common_native_path}/src/datashare_string_utils.cpp",
53  "${datashare_native_consumer_path}/controller/provider/src/ext_special_controller.cpp",
54  "${datashare_native_consumer_path}/controller/provider/src/general_controller_provider_impl.cpp",
55  "${datashare_native_consumer_path}/controller/service/src/general_controller_service_impl.cpp",
56  "${datashare_native_consumer_path}/controller/service/src/persistent_data_controller.cpp",
57  "${datashare_native_consumer_path}/controller/service/src/published_data_controller.cpp",
58  "${datashare_native_consumer_path}/src/datashare_connection.cpp",
59  "${datashare_native_consumer_path}/src/datashare_helper.cpp",
60  "${datashare_native_consumer_path}/src/datashare_helper_impl.cpp",
61  "${datashare_native_consumer_path}/src/datashare_proxy.cpp",
62  "${datashare_native_proxy_path}/src/ams_mgr_proxy.cpp",
63  "${datashare_native_proxy_path}/src/data_proxy_observer_stub.cpp",
64  "${datashare_native_proxy_path}/src/data_share_manager_impl.cpp",
65  "${datashare_native_proxy_path}/src/data_share_service_proxy.cpp",
66  "${datashare_native_proxy_path}/src/idata_share_client_death_observer.cpp",
67  "${datashare_native_proxy_path}/src/published_data_subscriber_manager.cpp",
68  "${datashare_native_proxy_path}/src/rdb_subscriber_manager.cpp",
69]
70
71datashare_consumer_external_deps = [
72  "ability_base:want",
73  "ability_base:zuri",
74  "ability_runtime:app_context",
75  "ability_runtime:extension_manager",
76  "c_utils:utils",
77  "common_event_service:cesfwk_innerkits",
78  "hilog:libhilog",
79  "hisysevent:libhisysevent",
80  "hitrace:hitrace_meter",
81  "hitrace:libhitracechain",
82  "ipc:ipc_single",
83  "ipc:rpc",
84  "samgr:samgr_proxy",
85]
86
87config("permission_config") {
88  visibility = [ ":*" ]
89  include_dirs = [
90    "common/include",
91    "permission/include",
92    "${datashare_common_native_path}/include",
93    "${datashare_native_permission_path}/include",
94  ]
95}
96
97config("permission_public_config") {
98  visibility = [ ":*" ]
99  include_dirs = [
100    "common/include",
101    "permission/include",
102  ]
103}
104
105ohos_shared_library("datashare_consumer") {
106  branch_protector_ret = "pac_ret"
107  sanitize = {
108    ubsan = true
109    boundary_sanitize = true
110    cfi = true
111    cfi_cross_dso = true
112    debug = false
113  }
114  include_dirs = [ "${datashare_common_native_path}/include" ]
115
116  sources = datashare_consumer_sources
117  configs = [ ":ability_config" ]
118  public_configs = [ ":datashare_public_config" ]
119  version_script = "consumer/libdatashare_consumer.map"
120  innerapi_tags = [
121    "platformsdk",
122    "sasdk",
123  ]
124  deps = [ "${datashare_innerapi_path}/common:datashare_common" ]
125
126  external_deps = datashare_consumer_external_deps
127  external_deps += [ "ability_runtime:ability_connect_callback_stub" ]
128
129  public_external_deps = [
130    "ability_runtime:dataobs_manager",
131    "kv_store:distributeddata_inner",
132  ]
133
134  subsystem_name = "distributeddatamgr"
135  part_name = "data_share"
136}
137
138ohos_shared_library("datashare_permission") {
139  branch_protector_ret = "pac_ret"
140  sanitize = {
141    ubsan = true
142    boundary_sanitize = true
143    cfi = true
144    cfi_cross_dso = true
145    debug = false
146  }
147  include_dirs = []
148
149  sources = [
150    "${datashare_common_native_path}/src/datashare_string_utils.cpp",
151    "${datashare_native_permission_path}/src/data_share_called_config.cpp",
152    "${datashare_native_permission_path}/src/data_share_permission.cpp",
153  ]
154  configs = [ ":permission_config" ]
155  public_configs = [ ":permission_public_config" ]
156  version_script = "permission/libdatashare_permission.map"
157  innerapi_tags = [ "platformsdk" ]
158  deps = [ "${datashare_innerapi_path}/common:datashare_common" ]
159
160  external_deps = [
161    "ability_base:zuri",
162    "ability_runtime:app_context",
163    "ability_runtime:runtime",
164    "access_token:libaccesstoken_sdk",
165    "bundle_framework:appexecfwk_base",
166    "bundle_framework:appexecfwk_core",
167    "bundle_framework:libappexecfwk_common",
168    "c_utils:utils",
169    "common_event_service:cesfwk_innerkits",
170    "hilog:libhilog",
171    "ipc:ipc_single",
172    "samgr:samgr_proxy",
173  ]
174
175  subsystem_name = "distributeddatamgr"
176  part_name = "data_share"
177}
178
179ohos_shared_library("datashare_provider") {
180  branch_protector_ret = "pac_ret"
181  sanitize = {
182    ubsan = true
183    boundary_sanitize = true
184    cfi = true
185    cfi_cross_dso = true
186    debug = false
187  }
188  include_dirs = [ "${datashare_common_napi_path}/include" ]
189
190  sources = [
191    "${datashare_common_native_path}/src/datashare_string_utils.cpp",
192    "${datashare_native_provider_path}/src/datashare_ext_ability.cpp",
193    "${datashare_native_provider_path}/src/datashare_ext_ability_context.cpp",
194    "${datashare_native_provider_path}/src/datashare_stub.cpp",
195    "${datashare_native_provider_path}/src/datashare_stub_impl.cpp",
196    "${datashare_native_provider_path}/src/datashare_uv_queue.cpp",
197    "${datashare_native_provider_path}/src/js_datashare_ext_ability.cpp",
198    "${datashare_native_provider_path}/src/js_datashare_ext_ability_context.cpp",
199  ]
200  configs = [ ":ability_config" ]
201  public_configs = [ ":datashare_public_config" ]
202  version_script = "provider/libdatashare_provider.map"
203  innerapi_tags = [ "platformsdk" ]
204  deps = [
205    "${datashare_innerapi_path}/common:datashare_common",
206    "${datashare_napi_path}/dataShare:datashare_jscommon",
207  ]
208
209  external_deps = [
210    "ability_base:want",
211    "ability_base:zuri",
212    "ability_runtime:ability_connect_callback_stub",
213    "ability_runtime:ability_context_native",
214    "ability_runtime:abilitykit_native",
215    "ability_runtime:app_context",
216    "ability_runtime:extensionkit_native",
217    "ability_runtime:napi_common",
218    "ability_runtime:runtime",
219    "access_token:libaccesstoken_sdk",
220    "c_utils:utils",
221    "common_event_service:cesfwk_innerkits",
222    "hilog:libhilog",
223    "hisysevent:libhisysevent",
224    "ipc:ipc_napi",
225    "ipc:ipc_single",
226    "kv_store:distributeddata_inner",
227    "napi:ace_napi",
228    "samgr:samgr_proxy",
229  ]
230
231  public_external_deps = [ "ability_runtime:dataobs_manager" ]
232
233  subsystem_name = "distributeddatamgr"
234  part_name = "data_share"
235}
236
237ohos_shared_library("datashare_ext_ability_module") {
238  branch_protector_ret = "pac_ret"
239  sanitize = {
240    ubsan = true
241    boundary_sanitize = true
242    cfi = true
243    cfi_cross_dso = true
244    debug = false
245  }
246  include_dirs = [ "${datashare_native_provider_path}/include" ]
247
248  sources = [ "${datashare_native_provider_path}/src/datashare_ext_ability_module_loader.cpp" ]
249
250  configs = [ ":ability_config" ]
251  public_configs = [ ":datashare_public_config" ]
252
253  deps = [ ":datashare_provider" ]
254
255  external_deps = [
256    "ability_base:want",
257    "ability_runtime:abilitykit_native",
258    "ability_runtime:runtime",
259    "c_utils:utils",
260    "common_event_service:cesfwk_innerkits",
261    "hilog:libhilog",
262    "napi:ace_napi",
263  ]
264
265  relative_install_dir = "extensionability/"
266  subsystem_name = "distributeddatamgr"
267  part_name = "data_share"
268}
269
270ohos_static_library("datashare_consumer_static") {
271  branch_protector_ret = "pac_ret"
272  sanitize = {
273    ubsan = true
274    boundary_sanitize = true
275    cfi = true
276    cfi_cross_dso = true
277    debug = false
278  }
279  include_dirs = [ "${datashare_common_native_path}/include" ]
280
281  sources = datashare_consumer_sources
282  configs = [ ":ability_config" ]
283  public_configs = [ ":datashare_public_config" ]
284  deps = [ "${datashare_innerapi_path}/common:datashare_common_static" ]
285
286  external_deps = datashare_consumer_external_deps
287
288  public_external_deps = [ "kv_store:distributeddata_inner" ]
289
290  subsystem_name = "distributeddatamgr"
291  part_name = "data_share"
292}
293