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("//build/ohos.gni")
14import("//foundation/distributeddatamgr/udmf/udmf.gni")
15
16config("udmf_napi_config") {
17  include_dirs = [
18    "${udmf_interfaces_path}/innerkits/client",
19    "${udmf_interfaces_path}/innerkits/common",
20    "${udmf_interfaces_path}/innerkits/data",
21    "${udmf_interfaces_path}/jskits/common",
22    "${udmf_interfaces_path}/jskits/data",
23
24    "${udmf_framework_path}/common",
25    "${udmf_framework_path}/innerkits/service",
26
27    "//third_party/libuv/include",
28    "//third_party/node/src",
29
30    "${aafwk_inner_api_path}/ability_manager/include",
31    "${aafwk_kits_path}/appkit/native/app/include/",
32    "${aafwk_kits_path}/ability/native/include",
33    "${aafwk_napi_path}/inner/napi_common",
34    "${aafwk_service_path}/abilitymgr/include",
35    "${aafwk_service_path}/common/include",
36  ]
37}
38
39ohos_shared_library("unifieddatachannel_napi") {
40  branch_protector_ret = "pac_ret"
41  sanitize = {
42    ubsan = true
43    boundary_sanitize = true
44    cfi = true
45    cfi_cross_dso = true
46    debug = false
47  }
48  sources = [
49    "${udmf_framework_path}/jskitsimpl/data/application_defined_record_napi.cpp",
50    "${udmf_framework_path}/jskitsimpl/data/audio_napi.cpp",
51    "${udmf_framework_path}/jskitsimpl/data/file_napi.cpp",
52    "${udmf_framework_path}/jskitsimpl/data/folder_napi.cpp",
53    "${udmf_framework_path}/jskitsimpl/data/html_napi.cpp",
54    "${udmf_framework_path}/jskitsimpl/data/image_napi.cpp",
55    "${udmf_framework_path}/jskitsimpl/data/link_napi.cpp",
56    "${udmf_framework_path}/jskitsimpl/data/plain_text_napi.cpp",
57    "${udmf_framework_path}/jskitsimpl/data/summary_napi.cpp",
58    "${udmf_framework_path}/jskitsimpl/data/system_defined_appitem_napi.cpp",
59    "${udmf_framework_path}/jskitsimpl/data/system_defined_form_napi.cpp",
60    "${udmf_framework_path}/jskitsimpl/data/system_defined_pixelmap_napi.cpp",
61    "${udmf_framework_path}/jskitsimpl/data/system_defined_record_napi.cpp",
62    "${udmf_framework_path}/jskitsimpl/data/text_napi.cpp",
63    "${udmf_framework_path}/jskitsimpl/data/unified_data_channel_napi.cpp",
64    "${udmf_framework_path}/jskitsimpl/data/unified_data_napi.cpp",
65    "${udmf_framework_path}/jskitsimpl/data/unified_data_properties_napi.cpp",
66    "${udmf_framework_path}/jskitsimpl/data/unified_record_napi.cpp",
67    "${udmf_framework_path}/jskitsimpl/data/video_napi.cpp",
68    "${udmf_interfaces_path}/jskits/module/unified_data_channel_napi_module.cpp",
69  ]
70
71  ldflags = [ "-Wl,--exclude-libs=ALL" ]
72
73  public_configs = [ ":udmf_napi_config" ]
74
75  deps = [
76    "${third_party_path}/bounds_checking_function:libsec_shared",
77    "../innerkits:udmf_client",
78    "../jskits:udmf_js_common",
79  ]
80
81  external_deps = [
82    "ability_base:want",
83    "ability_runtime:abilitykit_native",
84    "c_utils:utils",
85    "hilog:libhilog",
86    "ipc:ipc_core",
87    "kv_store:distributeddata_inner",
88    "napi:ace_napi",
89  ]
90
91  public_external_deps = [ "image_framework:image" ]
92  cflags = [ "-fvisibility=hidden" ]
93  relative_install_dir = "module/data"
94  subsystem_name = "distributeddatamgr"
95  part_name = "udmf"
96}
97
98ohos_shared_library("uniformtypedescriptor_napi") {
99  branch_protector_ret = "pac_ret"
100  sanitize = {
101    ubsan = true
102    boundary_sanitize = true
103    cfi = true
104    cfi_cross_dso = true
105    debug = false
106  }
107  sources = [
108    "${udmf_framework_path}/jskitsimpl/data/type_descriptor_napi.cpp",
109    "${udmf_framework_path}/jskitsimpl/data/uniform_type_descriptor_napi.cpp",
110    "${udmf_interfaces_path}/jskits/module/uniform_type_descriptor_napi_module.cpp",
111  ]
112
113  ldflags = [ "-Wl,--exclude-libs=ALL" ]
114
115  public_configs = [ ":udmf_napi_config" ]
116
117  deps = [
118    "${third_party_path}/bounds_checking_function:libsec_shared",
119    "../innerkits:udmf_client",
120    "../innerkits:utd_client",
121    "../jskits:udmf_js_common",
122  ]
123
124  external_deps = [
125    "ability_runtime:abilitykit_native",
126    "hilog:libhilog",
127    "ipc:ipc_core",
128    "napi:ace_napi",
129  ]
130
131  public_external_deps = [ "image_framework:image" ]
132  cflags = [ "-fvisibility=hidden" ]
133  relative_install_dir = "module/data"
134  subsystem_name = "distributeddatamgr"
135  part_name = "udmf"
136}
137
138ohos_shared_library("udmf_data_napi") {
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  sources = [
148    "${udmf_framework_path}/jskitsimpl/data/application_defined_record_napi.cpp",
149    "${udmf_framework_path}/jskitsimpl/data/audio_napi.cpp",
150    "${udmf_framework_path}/jskitsimpl/data/file_napi.cpp",
151    "${udmf_framework_path}/jskitsimpl/data/folder_napi.cpp",
152    "${udmf_framework_path}/jskitsimpl/data/html_napi.cpp",
153    "${udmf_framework_path}/jskitsimpl/data/image_napi.cpp",
154    "${udmf_framework_path}/jskitsimpl/data/link_napi.cpp",
155    "${udmf_framework_path}/jskitsimpl/data/plain_text_napi.cpp",
156    "${udmf_framework_path}/jskitsimpl/data/summary_napi.cpp",
157    "${udmf_framework_path}/jskitsimpl/data/system_defined_appitem_napi.cpp",
158    "${udmf_framework_path}/jskitsimpl/data/system_defined_form_napi.cpp",
159    "${udmf_framework_path}/jskitsimpl/data/system_defined_pixelmap_napi.cpp",
160    "${udmf_framework_path}/jskitsimpl/data/system_defined_record_napi.cpp",
161    "${udmf_framework_path}/jskitsimpl/data/text_napi.cpp",
162    "${udmf_framework_path}/jskitsimpl/data/unified_data_channel_napi.cpp",
163    "${udmf_framework_path}/jskitsimpl/data/unified_data_napi.cpp",
164    "${udmf_framework_path}/jskitsimpl/data/unified_data_properties_napi.cpp",
165    "${udmf_framework_path}/jskitsimpl/data/unified_record_napi.cpp",
166    "${udmf_framework_path}/jskitsimpl/data/video_napi.cpp",
167    "${udmf_interfaces_path}/jskits/module/unified_data_channel_napi_module.cpp",
168  ]
169
170  ldflags = [ "-Wl,--exclude-libs=ALL" ]
171
172  public_configs = [ ":udmf_napi_config" ]
173
174  deps = [
175    "${third_party_path}/bounds_checking_function:libsec_shared",
176    "../innerkits:udmf_client",
177    "../jskits:udmf_js_common",
178  ]
179
180  external_deps = [
181    "ability_base:want",
182    "ability_runtime:abilitykit_native",
183    "c_utils:utils",
184    "hilog:libhilog",
185    "ipc:ipc_core",
186    "kv_store:distributeddata_inner",
187    "napi:ace_napi",
188  ]
189
190  public_external_deps = [ "image_framework:image" ]
191  cflags = [ "-fvisibility=hidden" ]
192  subsystem_name = "distributeddatamgr"
193  part_name = "udmf"
194}
195
196ohos_static_library("udmf_js_common") {
197  branch_protector_ret = "pac_ret"
198  sanitize = {
199    ubsan = true
200    boundary_sanitize = true
201    cfi = true
202    cfi_cross_dso = true
203    debug = false
204  }
205  sources = [
206    "${udmf_framework_path}/jskitsimpl/common/napi_data_utils.cpp",
207    "${udmf_framework_path}/jskitsimpl/common/napi_error_utils.cpp",
208    "${udmf_framework_path}/jskitsimpl/common/napi_queue.cpp",
209  ]
210
211  ldflags = [ "-Wl,--exclude-libs=ALL" ]
212  cflags = [ "-fvisibility=hidden" ]
213  include_dirs = [ "${udmf_interfaces_path}/jskits/common" ]
214
215  public_configs = [ ":udmf_napi_config" ]
216  external_deps = [
217    "ability_runtime:abilitykit_native",
218    "hilog:libhilog",
219    "napi:ace_napi",
220  ]
221  public_external_deps = [ "image_framework:image" ]
222  subsystem_name = "distributeddatamgr"
223  part_name = "udmf"
224}
225