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