• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2021 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/relational_store/relational_store.gni")
15
16base_sources = [
17  "${relational_store_native_path}/rdb/src/abs_predicates.cpp",
18  "${relational_store_native_path}/rdb/src/abs_rdb_predicates.cpp",
19  "${relational_store_native_path}/rdb/src/abs_result_set.cpp",
20  "${relational_store_native_path}/rdb/src/base_transaction.cpp",
21  "${relational_store_native_path}/rdb/src/base_transaction.h",
22  "${relational_store_native_path}/rdb/src/raw_data_parser.cpp",
23  "${relational_store_native_path}/rdb/src/rdb_helper.cpp",
24  "${relational_store_native_path}/rdb/src/rdb_predicates.cpp",
25  "${relational_store_native_path}/rdb/src/rdb_sql_utils.cpp",
26  "${relational_store_native_path}/rdb/src/rdb_store_config.cpp",
27  "${relational_store_native_path}/rdb/src/rdb_store_impl.cpp",
28  "${relational_store_native_path}/rdb/src/rdb_store_manager.cpp",
29  "${relational_store_native_path}/rdb/src/sqlite_connection.cpp",
30  "${relational_store_native_path}/rdb/src/sqlite_connection_pool.cpp",
31  "${relational_store_native_path}/rdb/src/sqlite_global_config.cpp",
32  "${relational_store_native_path}/rdb/src/sqlite_sql_builder.cpp",
33  "${relational_store_native_path}/rdb/src/sqlite_statement.cpp",
34  "${relational_store_native_path}/rdb/src/sqlite_utils.cpp",
35  "${relational_store_native_path}/rdb/src/step_result_set.cpp",
36  "${relational_store_native_path}/rdb/src/string_utils.cpp",
37  "${relational_store_native_path}/rdb/src/value_object.cpp",
38  "${relational_store_native_path}/rdb/src/values_bucket.cpp",
39]
40
41if (is_ohos && !build_ohos_sdk) {
42  config("native_rdb_config") {
43    visibility = [ ":*" ]
44
45    include_dirs = [
46      "include",
47      "${relational_store_common_path}/include",
48      "${relational_store_native_path}/rdb/include",
49      "${relational_store_native_path}/rdb_device_manager_adapter/include",
50    ]
51
52    defines = [
53      "RELATIONAL_STORE",
54      "SQLITE_HAS_CODEC",
55    ]
56
57    if (relational_store_rdb_support_icu) {
58      include_dirs += [
59        "//third_party/icu/icu4c/source",
60        "//third_party/icu/icu4c/source/i18n",
61        "//third_party/icu/icu4c/source/common",
62      ]
63      defines += [ "RDB_SUPPORT_ICU" ]
64    }
65
66    defines += [ "SQLITE_DISTRIBUTE_RELATIONAL" ]
67    include_dirs += [
68      "${kvstore_path}/common",
69      "${distributedfile_path}/mod_securitylabel",
70    ]
71  }
72
73  config("native_rdb_public_config") {
74    visibility = [ ":*" ]
75
76    include_dirs = [
77      "include",
78      "${relational_store_native_path}/rdb/include",
79    ]
80  }
81
82  base_deps = [
83    "//third_party/icu/icu4c:shared_icui18n",
84    "//third_party/icu/icu4c:shared_icuuc",
85  ]
86
87  ohos_shared_library("native_rdb") {
88    part_name = "relational_store"
89    sources = base_sources
90
91    configs = [ ":native_rdb_config" ]
92
93    deps = base_deps
94
95    deps += [ "//third_party/sqlite:sqlite" ]
96    ldflags = [ "-Wl,--exclude-libs,ALL" ]
97    cflags_cc = [ "-fvisibility=hidden" ]
98
99    sources += [
100      "${relational_store_native_path}/rdb/src/abs_shared_result_set.cpp",
101      "${relational_store_native_path}/rdb/src/rdb_manager_impl.cpp",
102      "${relational_store_native_path}/rdb/src/rdb_notifier_stub.cpp",
103      "${relational_store_native_path}/rdb/src/rdb_security_manager.cpp",
104      "${relational_store_native_path}/rdb/src/rdb_service_proxy.cpp",
105      "${relational_store_native_path}/rdb/src/rdb_types_util.cpp",
106      "${relational_store_native_path}/rdb/src/result_set_proxy.cpp",
107      "${relational_store_native_path}/rdb/src/security_policy.cpp",
108      "${relational_store_native_path}/rdb/src/share_block.cpp",
109      "${relational_store_native_path}/rdb/src/shared_block_serializer_info.cpp",
110      "${relational_store_native_path}/rdb/src/sqlite_shared_result_set.cpp",
111      "${relational_store_native_path}/rdb/src/task_executor.cpp",
112      "${relational_store_native_path}/rdb_device_manager_adapter/src/rdb_device_manager_adapter.cpp",
113    ]
114
115    public_deps = [
116      "${relational_store_innerapi_path}/appdatafwk:native_appdatafwk",
117      "${relational_store_innerapi_path}/appdatafwk:relational_common_base",
118    ]
119
120    external_deps = [
121      "ability_base:zuri",
122      "ability_runtime:dataobs_manager",
123      "c_utils:utils",
124      "device_manager:devicemanagersdk",
125      "hilog:libhilog",
126      "hitrace:hitrace_meter",
127      "huks:libhukssdk",
128      "ipc:ipc_core",
129      "kv_store:distributeddb",
130      "samgr:samgr_proxy",
131    ]
132
133    public_configs = [ ":native_rdb_public_config" ]
134    innerapi_tags = [ "platformsdk" ]
135    subsystem_name = "distributeddatamgr"
136  }
137
138  ohos_static_library("native_rdb_static") {
139    sources = base_sources
140
141    configs = [ ":native_rdb_config" ]
142
143    deps = base_deps
144
145    deps += [ "//third_party/sqlite:sqlite" ]
146    ldflags = [ "-Wl,--exclude-libs,ALL" ]
147
148    sources += [
149      "${relational_store_native_path}/rdb/src/abs_shared_result_set.cpp",
150      "${relational_store_native_path}/rdb/src/rdb_manager_impl.cpp",
151      "${relational_store_native_path}/rdb/src/rdb_notifier_stub.cpp",
152      "${relational_store_native_path}/rdb/src/rdb_security_manager.cpp",
153      "${relational_store_native_path}/rdb/src/rdb_service_proxy.cpp",
154      "${relational_store_native_path}/rdb/src/rdb_types_util.cpp",
155      "${relational_store_native_path}/rdb/src/result_set_proxy.cpp",
156      "${relational_store_native_path}/rdb/src/security_policy.cpp",
157      "${relational_store_native_path}/rdb/src/share_block.cpp",
158      "${relational_store_native_path}/rdb/src/shared_block_serializer_info.cpp",
159      "${relational_store_native_path}/rdb/src/sqlite_shared_result_set.cpp",
160      "${relational_store_native_path}/rdb/src/task_executor.cpp",
161      "${relational_store_native_path}/rdb_device_manager_adapter/src/rdb_device_manager_adapter.cpp",
162    ]
163
164    public_deps = [
165      "${relational_store_innerapi_path}/appdatafwk:native_appdatafwk",
166      "${relational_store_innerapi_path}/appdatafwk:relational_common_base",
167    ]
168
169    external_deps = [
170      "ability_base:zuri",
171      "ability_runtime:dataobs_manager",
172      "c_utils:utils",
173      "device_manager:devicemanagersdk",
174      "hilog:libhilog",
175      "hitrace:hitrace_meter",
176      "huks:libhukssdk",
177      "ipc:ipc_core",
178      "kv_store:distributeddb",
179      "samgr:samgr_proxy",
180    ]
181
182    public_configs = [ ":native_rdb_public_config" ]
183
184    subsystem_name = "distributeddatamgr"
185    part_name = "relational_store"
186  }
187} else if (is_mingw) {
188  config("native_rdb_config") {
189    visibility = [ ":*" ]
190
191    include_dirs = [
192      "mock/include",
193      "${relational_store_common_path}/include",
194      "${relational_store_native_path}/rdb/mock/include",
195      "//commonlibrary/c_utils/base/include",
196      "include",
197      "//foundation/communication/ipc/interfaces/innerkits/ipc_core/include",
198      "${relational_store_native_path}/rdb/include",
199      "//third_party/libuv/src/win",
200    ]
201
202    defines = [
203      "RELATIONAL_STORE",
204      "SQLITE_HAS_CODEC",
205    ]
206
207    if (relational_store_rdb_support_icu) {
208      include_dirs += [
209        "//third_party/icu/icu4c/source",
210        "//third_party/icu/icu4c/source/i18n",
211        "//third_party/icu/icu4c/source/common",
212      ]
213      defines += [ "RDB_SUPPORT_ICU" ]
214    }
215
216    defines += [ "WINDOWS_PLATFORM" ]
217    include_dirs += [
218      "//foundation/distributeddatamgr/kv_store/frameworks/common",
219      "//third_party/sqlite/include",
220    ]
221    libs = [ "//prebuilts/mingw-w64/ohos/linux-x86_64/clang-mingw/x86_64-w64-mingw32/lib/libws2_32.a" ]
222  }
223
224  config("native_rdb_public_config") {
225    visibility = [ ":*" ]
226
227    include_dirs = [
228      "mock/include",
229      "include",
230      "//third_party/libuv/src/win",
231    ]
232  }
233
234  base_deps = [
235    "//third_party/icu/icu4c:shared_icui18n",
236    "//third_party/icu/icu4c:shared_icuuc",
237  ]
238
239  ohos_shared_library("native_rdb") {
240    part_name = "relational_store"
241    sources = base_sources
242
243    configs = [ ":native_rdb_config" ]
244
245    deps = base_deps
246
247    sources +=
248        [ "${relational_store_native_path}/rdb/mock/src/task_executor.cpp" ]
249
250    deps += [
251      "${relational_store_innerapi_path}/appdatafwk:relational_common_base",
252      "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_windows",
253      "//third_party/sqlite:sqlite_sdk",
254    ]
255    cflags_cc = [ "-std=c++17" ]
256
257    public_configs = [ ":native_rdb_public_config" ]
258    innerapi_tags = [ "platformsdk" ]
259    subsystem_name = "distributeddatamgr"
260  }
261
262  ohos_static_library("native_rdb_static") {
263    sources = base_sources
264
265    configs = [ ":native_rdb_config" ]
266
267    deps = base_deps
268
269    sources +=
270        [ "${relational_store_native_path}/rdb/mock/src/task_executor.cpp" ]
271
272    deps += [
273      "${relational_store_innerapi_path}/appdatafwk:relational_common_base",
274      "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_windows",
275      "//third_party/sqlite:sqlite_sdk",
276    ]
277    cflags_cc = [ "-std=c++17" ]
278
279    public_configs = [ ":native_rdb_public_config" ]
280
281    subsystem_name = "distributeddatamgr"
282    part_name = "relational_store"
283  }
284} else if (is_mac) {
285  config("native_rdb_config") {
286    visibility = [ ":*" ]
287
288    include_dirs = [
289      "mock/include",
290      "${relational_store_common_path}/include",
291      "${relational_store_native_path}/rdb/mock/include",
292      "//commonlibrary/c_utils/base/include",
293      "include",
294      "//foundation/communication/ipc/interfaces/innerkits/ipc_core/include",
295      "${relational_store_native_path}/rdb/include",
296    ]
297
298    defines = [
299      "RELATIONAL_STORE",
300      "SQLITE_HAS_CODEC",
301    ]
302
303    if (relational_store_rdb_support_icu) {
304      include_dirs += [
305        "//third_party/icu/icu4c/source",
306        "//third_party/icu/icu4c/source/i18n",
307        "//third_party/icu/icu4c/source/common",
308      ]
309      defines += [ "RDB_SUPPORT_ICU" ]
310    }
311
312    defines += [ "MAC_PLATFORM" ]
313    include_dirs += [
314      "//foundation/distributeddatamgr/kv_store/frameworks/common",
315      "//third_party/sqlite/include",
316    ]
317  }
318
319  config("native_rdb_public_config") {
320    visibility = [ ":*" ]
321
322    include_dirs = [
323      "mock/include",
324      "include",
325    ]
326  }
327
328  base_deps = [
329    "//third_party/icu/icu4c:shared_icui18n",
330    "//third_party/icu/icu4c:shared_icuuc",
331  ]
332
333  ohos_shared_library("native_rdb") {
334    part_name = "relational_store"
335    sources = base_sources
336
337    configs = [ ":native_rdb_config" ]
338
339    deps = base_deps
340
341    sources +=
342        [ "${relational_store_native_path}/rdb/mock/src/task_executor.cpp" ]
343    deps += [
344      "${relational_store_innerapi_path}/appdatafwk:relational_common_base",
345      "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_mac",
346      "//third_party/sqlite:sqlite_sdk",
347    ]
348    cflags_cc = [ "-std=c++17" ]
349
350    public_configs = [ ":native_rdb_public_config" ]
351    innerapi_tags = [ "platformsdk" ]
352    subsystem_name = "distributeddatamgr"
353  }
354
355  ohos_static_library("native_rdb_static") {
356    sources = base_sources
357
358    configs = [ ":native_rdb_config" ]
359
360    deps = base_deps
361
362    sources +=
363        [ "${relational_store_native_path}/rdb/mock/src/task_executor.cpp" ]
364    deps += [
365      "${relational_store_innerapi_path}/appdatafwk:relational_common_base",
366      "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_mac",
367      "//third_party/sqlite:sqlite_sdk",
368    ]
369    cflags_cc = [ "-std=c++17" ]
370
371    public_configs = [ ":native_rdb_public_config" ]
372
373    subsystem_name = "distributeddatamgr"
374    part_name = "relational_store"
375  }
376} else if (is_android) {
377  config("native_rdb_config") {
378    visibility = [ ":*" ]
379
380    include_dirs = [
381      "${distributedfile_path}/mod_securitylabel",
382      "${relational_store_common_path}/include",
383      "${relational_store_innerapi_path}/rdb/mock/include",
384      "${relational_store_native_path}/rdb/mock/include",
385      "${relational_store_innerapi_path}/rdb/include",
386      "${relational_store_native_path}/rdb/include",
387    ]
388
389    defines = [
390      "RELATIONAL_STORE",
391      "SQLITE_HAS_CODEC",
392    ]
393
394    if (relational_store_rdb_support_icu) {
395      include_dirs += [
396        "//third_party/icu/icu4c/source",
397        "//third_party/icu/icu4c/source/i18n",
398        "//third_party/icu/icu4c/source/common",
399      ]
400      defines += [ "RDB_SUPPORT_ICU" ]
401    }
402  }
403
404  config("native_rdb_public_config") {
405    visibility = [ ":*" ]
406
407    include_dirs = [
408      "mock/include",
409      "include",
410      "${relational_store_native_path}/mock/rdb/include",
411      "${relational_store_native_path}/rdb/include",
412    ]
413  }
414
415  base_deps = [ "//third_party/icu/icu4c:shared_icuuc" ]
416
417  ohos_source_set("native_rdb") {
418    defines = [ "ANDROID_PLATFORM" ]
419
420    part_name = "relational_store"
421
422    sources = base_sources
423
424    configs = [ ":native_rdb_config" ]
425
426    deps = base_deps
427
428    sources += [
429      "${relational_store_native_path}/rdb/mock/src/task_executor.cpp",
430      "${relational_store_native_path}/rdb/src/security_policy.cpp",
431    ]
432    deps += [
433      "${relational_store_innerapi_path}/appdatafwk:relational_common_base",
434      "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_android",
435      "//commonlibrary/c_utils/base:utils",
436      "//third_party/sqlite:sqlite_static",
437    ]
438    cflags_cc = [ "-std=c++17" ]
439
440    public_configs = [ ":native_rdb_public_config" ]
441    subsystem_name = "distributeddatamgr"
442  }
443} else if (is_ios) {
444  config("native_rdb_config") {
445    visibility = [ ":*" ]
446
447    include_dirs = [
448      "${distributedfile_path}/mod_securitylabel",
449      "${relational_store_common_path}/include",
450      "${relational_store_innerapi_path}/rdb/mock/include",
451      "${relational_store_native_path}/rdb/mock/include",
452      "${relational_store_innerapi_path}/rdb/include",
453      "${relational_store_native_path}/rdb/include",
454    ]
455
456    defines = [
457      "RELATIONAL_STORE",
458      "SQLITE_HAS_CODEC",
459    ]
460
461    if (relational_store_rdb_support_icu) {
462      include_dirs += [
463        "//third_party/icu/icu4c/source",
464        "//third_party/icu/icu4c/source/i18n",
465        "//third_party/icu/icu4c/source/common",
466      ]
467      defines += [ "RDB_SUPPORT_ICU" ]
468    }
469  }
470
471  config("native_rdb_public_config") {
472    visibility = [ ":*" ]
473
474    include_dirs = [
475      "mock/include",
476      "include",
477      "${relational_store_native_path}/rdb/include",
478    ]
479  }
480
481  base_deps = [
482    "//third_party/icu/icu4c:static_icui18n",
483    "//third_party/icu/icu4c:static_icuuc",
484  ]
485
486  ohos_source_set("native_rdb") {
487    defines = [ "IOS_PLATFORM" ]
488
489    part_name = "relational_store"
490    sources = base_sources
491
492    configs = [ ":native_rdb_config" ]
493
494    deps = base_deps
495
496    sources += [
497      "${relational_store_native_path}/rdb/mock/src/task_executor.cpp",
498      "${relational_store_native_path}/rdb/src/security_policy.cpp",
499    ]
500    deps += [
501      "${relational_store_innerapi_path}/appdatafwk:relational_common_base",
502      "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_ios",
503      "//commonlibrary/c_utils/base:utilsbase",
504      "//third_party/sqlite:sqlite_static",
505    ]
506    cflags_cc = [ "-std=c++17" ]
507
508    public_configs = [ ":native_rdb_public_config" ]
509    subsystem_name = "distributeddatamgr"
510  }
511} else {
512  not_needed([ "base_sources" ])
513}
514