1# Copyright (c) 2024 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("//build/ohos.gni")
14import("//foundation/distributeddatamgr/udmf/adapter/arkui_x_udmf.gni")
15import("//foundation/distributeddatamgr/udmf/udmf.gni")
16
17config("udmf_client_config") {
18  include_dirs = [
19    "${udmf_interfaces_path}/innerkits/client",
20    "${udmf_interfaces_path}/innerkits/common",
21    "${udmf_interfaces_path}/innerkits/data",
22    "${udmf_framework_path}/common",
23    "${udmf_framework_path}/innerkitsimpl/data",
24    "${udmf_framework_path}/innerkitsimpl/service",
25    "${kv_store_path}/frameworks/common",
26    "${third_party_path}/libuv/include",
27    "${third_party_path}/node/src",
28    "${kv_store_path}/frameworks/innerkitsimpl/distributeddatafwk/include",
29    "${kv_store_path}/frameworks/innerkitsimpl/distributeddatafwk/src",
30    "${kv_store_path}/frameworks/innerkitsimpl/distributeddatasvc/include",
31    "${kv_store_path}/interfaces/innerkits/distributeddata/include",
32    "${file_service_path}/interfaces/common/include",
33    "${file_service_path}/interfaces/innerkits/native/file_uri/include",
34  ]
35}
36
37config("udmf_napi_config") {
38  include_dirs = [
39    "${udmf_interfaces_path}/innerkits/client",
40    "${udmf_interfaces_path}/innerkits/common",
41    "${udmf_interfaces_path}/innerkits/data",
42    "${udmf_interfaces_path}/jskits/common",
43    "${udmf_interfaces_path}/jskits/data",
44
45    "${udmf_framework_path}/common",
46    "${udmf_framework_path}/innerkits/service",
47
48    "${third_party_path}/libuv/include",
49    "${third_party_path}/node/src",
50
51    "${aafwk_inner_api_path}/ability_manager/include",
52    "${aafwk_kits_path}/appkit/native/app/include/",
53    "${aafwk_kits_path}/ability/native/include",
54    "${aafwk_napi_path}/inner/napi_common",
55    "${aafwk_service_path}/abilitymgr/include",
56    "${aafwk_service_path}/common/include",
57  ]
58}
59
60config("arkui_x_udmf_config") {
61  include_dirs = [
62    "${arkui_x_image_framework_path}/interfaces/innerkits/include",
63    "${arkui_x_image_framework_path}/interfaces/kits/js/common/include",
64    "${arkui_x_image_framework_path}/frameworks/innerkitsimpl/receiver/include",
65    "${arkui_x_image_framework_path}/frameworks/innerkitsimpl/utils/include",
66    "${arkui_x_graphic_2d_path}/rosen/modules/platform/ipc_core",
67    "${arkui_x_graphic_2d_path}/utils/color_manager/export",
68    "${arkui_x_graphic_surface_path}/interfaces/inner_api/common",
69    "${arkui_x_graphic_surface_path}/interfaces/inner_api/surface",
70    "${arkui_x_graphic_surface_path}/interfaces/inner_api/utils",
71    "${third_party_path}/skia",
72  ]
73}
74
75arkui_x_public_source = [
76  "${udmf_framework_path}/innerkitsimpl/client/getter_system.cpp",
77  "${udmf_framework_path}/innerkitsimpl/common/unified_key.cpp",
78  "${udmf_framework_path}/innerkitsimpl/common/unified_meta.cpp",
79  "${udmf_framework_path}/innerkitsimpl/data/application_defined_record.cpp",
80  "${udmf_framework_path}/innerkitsimpl/data/audio.cpp",
81  "${udmf_framework_path}/innerkitsimpl/data/file.cpp",
82  "${udmf_framework_path}/innerkitsimpl/data/flexible_type.cpp",
83  "${udmf_framework_path}/innerkitsimpl/data/folder.cpp",
84  "${udmf_framework_path}/innerkitsimpl/data/html.cpp",
85  "${udmf_framework_path}/innerkitsimpl/data/image.cpp",
86  "${udmf_framework_path}/innerkitsimpl/data/link.cpp",
87  "${udmf_framework_path}/innerkitsimpl/data/plain_text.cpp",
88  "${udmf_framework_path}/innerkitsimpl/data/preset_type_descriptors.cpp",
89  "${udmf_framework_path}/innerkitsimpl/data/system_defined_appitem.cpp",
90  "${udmf_framework_path}/innerkitsimpl/data/system_defined_form.cpp",
91  "${udmf_framework_path}/innerkitsimpl/data/system_defined_pixelmap.cpp",
92  "${udmf_framework_path}/innerkitsimpl/data/system_defined_record.cpp",
93  "${udmf_framework_path}/innerkitsimpl/data/text.cpp",
94  "${udmf_framework_path}/innerkitsimpl/data/type_descriptor.cpp",
95  "${udmf_framework_path}/innerkitsimpl/data/unified_data.cpp",
96  "${udmf_framework_path}/innerkitsimpl/data/unified_record.cpp",
97  "${udmf_framework_path}/innerkitsimpl/data/video.cpp",
98]
99
100ohos_source_set("arkui_x_udmf_data") {
101  sources = [
102    "${udmf_framework_path}/common/base32_utils.cpp",
103    "${udmf_framework_path}/common/custom_utd_json_parser.cpp",
104    "${udmf_framework_path}/common/custom_utd_store.cpp",
105    "${udmf_framework_path}/common/graph.cpp",
106    "${udmf_framework_path}/common/utd_cfgs_checker.cpp",
107    "${udmf_framework_path}/common/utd_graph.cpp",
108    "${udmf_root_path}/adapter/framework/common/udmf_utils.cpp",
109  ]
110
111  sources += arkui_x_public_source
112
113  deps = [
114    "${arkui_path}/ace_engine/adapter/${target_os}/build:libarkui_${target_os}",
115    "${arkui_x_c_utils_path}/base:utilsbase",
116    "${arkui_x_hilog_path}/interfaces/native/innerkits:libhilog_${target_os}",
117    "${third_party_path}/cJSON:cjson_static",
118  ]
119
120  configs = [
121    ":arkui_x_udmf_config",
122    ":udmf_client_config",
123    "${ability_runtime_cross_platform_path}/interfaces/inner_api/want:want_params_config",
124  ]
125
126  subsystem_name = "distributeddatamgr"
127  part_name = "udmf"
128}
129
130ohos_source_set("arkui_x_udmf_data_inner") {
131  sources = arkui_x_public_source
132
133  include_dirs = [ "${arkui_x_hilog_path}/interfaces/native/innerkits/include" ]
134
135  deps = [
136    "${arkui_path}/napi/:ace_napi",
137    "${arkui_x_c_utils_path}/base:utilsbase",
138    "${arkui_x_hilog_path}/interfaces/native/innerkits:libhilog_${target_os}",
139  ]
140
141  configs = [
142    ":arkui_x_udmf_config",
143    ":udmf_client_config",
144    "${ability_runtime_cross_platform_path}/interfaces/inner_api/want:want_params_config",
145  ]
146
147  subsystem_name = "distributeddatamgr"
148  part_name = "udmf"
149}
150
151config("arkui_x_udmf_napi_config") {
152  include_dirs = [
153    "${arkui_path}/napi/interfaces/kits",
154    "${arkui_path}/napi/interfaces/inner_api",
155    "${arkui_x_hilog_path}/interfaces/native/innerkits/include",
156    "${arkui_x_image_framework_path}/interfaces/kits/js/common/include",
157    "${arkui_x_image_framework_path}/frameworks/innerkitsimpl/receiver/include",
158    "${arkui_x_image_framework_path}/frameworks/innerkitsimpl/utils/include",
159    "${arkui_x_image_framework_path}/interfaces/innerkits/include",
160    "${arkui_x_graphic_surface_path}/interfaces/inner_api/common",
161    "${arkui_x_graphic_surface_path}/interfaces/inner_api/surface",
162    "${arkui_x_graphic_surface_path}/interfaces/inner_api/utils",
163    "${arkui_x_graphic_2d_path}/utils/color_manager/export",
164    "${arkui_x_graphic_2d_path}/rosen/modules/platform/ipc_core",
165    "${third_party_path}/skia",
166  ]
167}
168
169ohos_source_set("arkui_x_uniformtypedescriptor") {
170  include_dirs = [
171    "${ability_runtime_cross_platform_path}/frameworks/js/napi/napi_common",
172    "${udmf_framework_path}/innerkitsimpl/data",
173    "${udmf_root_path}/adapter/framework/innerkitsimpl/client",
174  ]
175
176  sources = [
177    "${udmf_framework_path}/jskitsimpl/common/napi_data_utils.cpp",
178    "${udmf_framework_path}/jskitsimpl/common/napi_error_utils.cpp",
179    "${udmf_framework_path}/jskitsimpl/common/napi_queue.cpp",
180    "${udmf_framework_path}/jskitsimpl/data/type_descriptor_napi.cpp",
181    "${udmf_framework_path}/jskitsimpl/data/uniform_type_descriptor_napi.cpp",
182    "${udmf_interfaces_path}/jskits/module/uniform_type_descriptor_napi_module.cpp",
183    "${udmf_root_path}/adapter/framework/innerkitsimpl/client/udmf_client.cpp",
184    "${udmf_root_path}/adapter/framework/innerkitsimpl/client/utd_client.cpp",
185  ]
186  deps = [
187    ":arkui_x_udmf_data",
188    "${arkui_x_c_utils_path}/base:utilsbase",
189    "${arkui_x_hilog_path}/interfaces/native/innerkits:libhilog_${target_os}",
190    "${arkui_x_plugin_path}/libs/napi:napi_${target_os}",
191  ]
192
193  public_configs = [
194    ":udmf_napi_config",
195    ":arkui_x_udmf_napi_config",
196    "${ability_runtime_cross_platform_path}/interfaces/inner_api/jsruntime:jsruntime_config",
197    "${ability_runtime_cross_platform_path}/interfaces/inner_api/hilog:ability_cross_platform_hilog_config",
198    "${ability_runtime_cross_platform_path}/interfaces/inner_api/want:want_params_config",
199  ]
200
201  subsystem_name = "distributeddatamgr"
202  part_name = "udmf"
203}
204
205ohos_source_set("arkui_x_unifieddatachannel") {
206  include_dirs = [
207    "${ability_runtime_cross_platform_path}/frameworks/js/napi/napi_common",
208    "${udmf_root_path}/adapter/framework/innerkitsimpl/client",
209    "${third_party_path}/bounds_checking_function/include",
210  ]
211
212  sources = [
213    "${udmf_framework_path}/jskitsimpl/common/napi_data_utils.cpp",
214    "${udmf_framework_path}/jskitsimpl/common/napi_error_utils.cpp",
215    "${udmf_framework_path}/jskitsimpl/common/napi_queue.cpp",
216    "${udmf_framework_path}/jskitsimpl/data/application_defined_record_napi.cpp",
217    "${udmf_framework_path}/jskitsimpl/data/audio_napi.cpp",
218    "${udmf_framework_path}/jskitsimpl/data/file_napi.cpp",
219    "${udmf_framework_path}/jskitsimpl/data/folder_napi.cpp",
220    "${udmf_framework_path}/jskitsimpl/data/html_napi.cpp",
221    "${udmf_framework_path}/jskitsimpl/data/image_napi.cpp",
222    "${udmf_framework_path}/jskitsimpl/data/link_napi.cpp",
223    "${udmf_framework_path}/jskitsimpl/data/plain_text_napi.cpp",
224    "${udmf_framework_path}/jskitsimpl/data/summary_napi.cpp",
225    "${udmf_framework_path}/jskitsimpl/data/system_defined_appitem_napi.cpp",
226    "${udmf_framework_path}/jskitsimpl/data/system_defined_form_napi.cpp",
227    "${udmf_framework_path}/jskitsimpl/data/system_defined_pixelmap_napi.cpp",
228    "${udmf_framework_path}/jskitsimpl/data/system_defined_record_napi.cpp",
229    "${udmf_framework_path}/jskitsimpl/data/text_napi.cpp",
230    "${udmf_framework_path}/jskitsimpl/data/unified_data_channel_napi.cpp",
231    "${udmf_framework_path}/jskitsimpl/data/unified_data_napi.cpp",
232    "${udmf_framework_path}/jskitsimpl/data/unified_data_properties_napi.cpp",
233    "${udmf_framework_path}/jskitsimpl/data/unified_record_napi.cpp",
234    "${udmf_framework_path}/jskitsimpl/data/video_napi.cpp",
235    "${udmf_interfaces_path}/jskits/module/unified_data_channel_napi_module.cpp",
236    "${udmf_root_path}/adapter/framework/innerkitsimpl/client/udmf_client.cpp",
237  ]
238
239  ldflags = [ "-Wl,--exclude-libs=ALL" ]
240
241  public_configs = [
242    ":udmf_napi_config",
243    ":arkui_x_udmf_napi_config",
244    "${ability_runtime_cross_platform_path}/interfaces/inner_api/jsruntime:jsruntime_config",
245    "${ability_runtime_cross_platform_path}/interfaces/inner_api/hilog:ability_cross_platform_hilog_config",
246    "${ability_runtime_cross_platform_path}/interfaces/inner_api/want:want_params_config",
247  ]
248
249  deps = [
250    ":arkui_x_udmf_data",
251    "${ability_runtime_cross_platform_path}/interfaces/inner_api/want:cross_platform_want_params",
252    "${arkui_x_c_utils_path}/base:utilsbase",
253    "${arkui_x_hilog_path}/interfaces/native/innerkits:libhilog_${target_os}",
254    "${arkui_x_plugin_path}/libs/napi:napi_${target_os}",
255  ]
256
257  subsystem_name = "distributeddatamgr"
258  part_name = "udmf"
259}
260
261ohos_source_set("arkui_x_udmf_data_napi") {
262  include_dirs = [
263    "${ability_runtime_cross_platform_path}/frameworks/js/napi/napi_common",
264    "${ability_runtime_cross_platform_path}/interfaces/inner_api/want",
265  ]
266
267  sources = [
268    "${udmf_framework_path}/jskitsimpl/common/napi_data_utils.cpp",
269    "${udmf_framework_path}/jskitsimpl/common/napi_error_utils.cpp",
270    "${udmf_framework_path}/jskitsimpl/common/napi_queue.cpp",
271    "${udmf_framework_path}/jskitsimpl/data/application_defined_record_napi.cpp",
272    "${udmf_framework_path}/jskitsimpl/data/audio_napi.cpp",
273    "${udmf_framework_path}/jskitsimpl/data/file_napi.cpp",
274    "${udmf_framework_path}/jskitsimpl/data/folder_napi.cpp",
275    "${udmf_framework_path}/jskitsimpl/data/html_napi.cpp",
276    "${udmf_framework_path}/jskitsimpl/data/image_napi.cpp",
277    "${udmf_framework_path}/jskitsimpl/data/link_napi.cpp",
278    "${udmf_framework_path}/jskitsimpl/data/plain_text_napi.cpp",
279    "${udmf_framework_path}/jskitsimpl/data/summary_napi.cpp",
280    "${udmf_framework_path}/jskitsimpl/data/system_defined_appitem_napi.cpp",
281    "${udmf_framework_path}/jskitsimpl/data/system_defined_form_napi.cpp",
282    "${udmf_framework_path}/jskitsimpl/data/system_defined_pixelmap_napi.cpp",
283    "${udmf_framework_path}/jskitsimpl/data/system_defined_record_napi.cpp",
284    "${udmf_framework_path}/jskitsimpl/data/text_napi.cpp",
285    "${udmf_framework_path}/jskitsimpl/data/unified_data_napi.cpp",
286    "${udmf_framework_path}/jskitsimpl/data/unified_data_properties_napi.cpp",
287    "${udmf_framework_path}/jskitsimpl/data/unified_record_napi.cpp",
288    "${udmf_framework_path}/jskitsimpl/data/video_napi.cpp",
289  ]
290
291  public_configs = [
292    ":udmf_napi_config",
293    ":arkui_x_udmf_napi_config",
294    "${ability_runtime_cross_platform_path}/interfaces/inner_api/want:want_params_config",
295  ]
296
297  deps = [
298    ":arkui_x_udmf_data_inner",
299    "${ability_runtime_cross_platform_path}/frameworks/js/napi/napi_common:napi_common",
300    "${ability_runtime_cross_platform_path}/interfaces/inner_api/want:cross_platform_want_params",
301    "${arkui_x_c_utils_path}/base:utilsbase",
302  ]
303
304  subsystem_name = "distributeddatamgr"
305  part_name = "udmf"
306}
307