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    "ability_runtime:napi_common",
85    "c_utils:utils",
86    "hilog:libhilog",
87    "ipc:ipc_core",
88    "kv_store:distributeddata_inner",
89    "napi:ace_napi",
90  ]
91
92  public_external_deps = [ "image_framework:image" ]
93  cflags = [ "-fvisibility=hidden" ]
94  relative_install_dir = "module/data"
95  subsystem_name = "distributeddatamgr"
96  part_name = "udmf"
97}
98
99ohos_shared_library("uniformtypedescriptor_napi") {
100  branch_protector_ret = "pac_ret"
101  sanitize = {
102    ubsan = true
103    boundary_sanitize = true
104    cfi = true
105    cfi_cross_dso = true
106    debug = false
107  }
108  sources = [
109    "${udmf_framework_path}/jskitsimpl/data/type_descriptor_napi.cpp",
110    "${udmf_framework_path}/jskitsimpl/data/uniform_type_descriptor_napi.cpp",
111    "${udmf_interfaces_path}/jskits/module/uniform_type_descriptor_napi_module.cpp",
112  ]
113
114  ldflags = [ "-Wl,--exclude-libs=ALL" ]
115
116  public_configs = [ ":udmf_napi_config" ]
117
118  deps = [
119    "${third_party_path}/bounds_checking_function:libsec_shared",
120    "../innerkits:udmf_client",
121    "../innerkits:utd_client",
122    "../jskits:udmf_js_common",
123  ]
124
125  external_deps = [
126    "ability_runtime:abilitykit_native",
127    "hilog:libhilog",
128    "ipc:ipc_core",
129    "napi:ace_napi",
130  ]
131
132  public_external_deps = [ "image_framework:image" ]
133  cflags = [ "-fvisibility=hidden" ]
134  relative_install_dir = "module/data"
135  subsystem_name = "distributeddatamgr"
136  part_name = "udmf"
137}
138
139ohos_shared_library("udmf_data_napi") {
140  branch_protector_ret = "pac_ret"
141  sanitize = {
142    ubsan = true
143    boundary_sanitize = true
144    cfi = true
145    cfi_cross_dso = true
146    debug = false
147  }
148  sources = [
149    "${udmf_framework_path}/jskitsimpl/data/application_defined_record_napi.cpp",
150    "${udmf_framework_path}/jskitsimpl/data/audio_napi.cpp",
151    "${udmf_framework_path}/jskitsimpl/data/file_napi.cpp",
152    "${udmf_framework_path}/jskitsimpl/data/folder_napi.cpp",
153    "${udmf_framework_path}/jskitsimpl/data/html_napi.cpp",
154    "${udmf_framework_path}/jskitsimpl/data/image_napi.cpp",
155    "${udmf_framework_path}/jskitsimpl/data/link_napi.cpp",
156    "${udmf_framework_path}/jskitsimpl/data/plain_text_napi.cpp",
157    "${udmf_framework_path}/jskitsimpl/data/summary_napi.cpp",
158    "${udmf_framework_path}/jskitsimpl/data/system_defined_appitem_napi.cpp",
159    "${udmf_framework_path}/jskitsimpl/data/system_defined_form_napi.cpp",
160    "${udmf_framework_path}/jskitsimpl/data/system_defined_pixelmap_napi.cpp",
161    "${udmf_framework_path}/jskitsimpl/data/system_defined_record_napi.cpp",
162    "${udmf_framework_path}/jskitsimpl/data/text_napi.cpp",
163    "${udmf_framework_path}/jskitsimpl/data/unified_data_channel_napi.cpp",
164    "${udmf_framework_path}/jskitsimpl/data/unified_data_napi.cpp",
165    "${udmf_framework_path}/jskitsimpl/data/unified_data_properties_napi.cpp",
166    "${udmf_framework_path}/jskitsimpl/data/unified_record_napi.cpp",
167    "${udmf_framework_path}/jskitsimpl/data/video_napi.cpp",
168    "${udmf_interfaces_path}/jskits/module/unified_data_channel_napi_module.cpp",
169  ]
170
171  ldflags = [ "-Wl,--exclude-libs=ALL" ]
172
173  public_configs = [ ":udmf_napi_config" ]
174
175  deps = [
176    "${third_party_path}/bounds_checking_function:libsec_shared",
177    "../innerkits:udmf_client",
178    "../jskits:udmf_js_common",
179  ]
180
181  external_deps = [
182    "ability_base:want",
183    "ability_runtime:abilitykit_native",
184    "ability_runtime:napi_common",
185    "c_utils:utils",
186    "hilog:libhilog",
187    "ipc:ipc_core",
188    "kv_store:distributeddata_inner",
189    "napi:ace_napi",
190  ]
191
192  public_external_deps = [ "image_framework:image" ]
193  cflags = [ "-fvisibility=hidden" ]
194  subsystem_name = "distributeddatamgr"
195  part_name = "udmf"
196}
197
198ohos_static_library("udmf_js_common") {
199  branch_protector_ret = "pac_ret"
200  sanitize = {
201    ubsan = true
202    boundary_sanitize = true
203    cfi = true
204    cfi_cross_dso = true
205    debug = false
206  }
207  sources = [
208    "${udmf_framework_path}/jskitsimpl/common/napi_data_utils.cpp",
209    "${udmf_framework_path}/jskitsimpl/common/napi_error_utils.cpp",
210    "${udmf_framework_path}/jskitsimpl/common/napi_queue.cpp",
211  ]
212
213  ldflags = [ "-Wl,--exclude-libs=ALL" ]
214  cflags = [ "-fvisibility=hidden" ]
215  include_dirs = [ "${udmf_interfaces_path}/jskits/common" ]
216
217  public_configs = [ ":udmf_napi_config" ]
218  external_deps = [
219    "ability_runtime:abilitykit_native",
220    "hilog:libhilog",
221    "napi:ace_napi",
222  ]
223  public_external_deps = [ "image_framework:image" ]
224  subsystem_name = "distributeddatamgr"
225  part_name = "udmf"
226}
227